【spring boot笔记】12.(Web 开发)在Linux中使用docker

Linux推荐使用vmware14+centOS7,vmware随便找个地方下即可,centOS7可以在官网下。
安装centos7的时候,注意网络使用桥接模式。
新安装的centOS7需要设置一下开机自动配置IP地址

首先查看一下虚拟机的IP地址:

ip addr

然后使用远程smarTTY连接一下这个服务器方面操作:
【spring boot笔记】12.(Web 开发)在Linux中使用docker

第一次启用docker.service时可能会出错:

使用:

journalctl -u docker.service

来查看出错信息:
【spring boot笔记】12.(Web 开发)在Linux中使用docker
报错的意思是linux的内核中的SELinux不支持overlay2 graph driver。可以重启新的内核或者在docker中禁用selinux。
进入到:

cd /etc/sysconfig/docker

【spring boot笔记】12.(Web 开发)在Linux中使用docker
保存文件并退出后需要重启docker:

systemctl restart docker.service

参考:
http://ju.outofmemory.cn/entry/352578
https://www.cnblogs.com/huhyoung/p/9495956.html

然后开启一下docker并设置一直启用

systemctl start docker
systemctl enable docker

如果需要关闭docker,可以使用:

systemctl stop docker

镜像操作

搜索镜像(例如搜索和mysql有关的镜像):

docker search mysql

下载(拉取)镜像:

docker pull mysql 

这种方式默认下载的是最新版本,如果需要下载指定版本,可以使用:

docker pull mysql:5.5

查看当前的docker库中都有哪些内容: ```shell docker images ``` 删除指定本地镜像: ```shell docker rmi IMAGE-ID ```

容器操作

容器操作的过程为:
得到软件镜像----运行镜像-----产生一个容器(正在运行的软件)

  • 一个镜像运行之后可以产生一个容器,容器可以去运行、停止运行以及被删除。
  • 停止运行的软件可以再次被运行起来,但是被删除的软件就不能再被运行了。
  • 另一方面删除一个容器并不会删除它的镜像。

现在以tomcat为例进行说明:

通过docker容器下载tomcat:

docker pull tomcat

查看一下docker中的库安装情况:

docker images

【spring boot笔记】12.(Web 开发)在Linux中使用docker

现在来运行一下tomcat:

docker run --name mytomcat -d tomcat:latest

这句话启动了一个名为"mytomcat"的tomcat服务器
"-d"表示后台运行,"tomcat:latest"分别对应了tomcat的repository和tag。


查看一下当前docker中运行的软件情况:

docker ps

【spring boot笔记】12.(Web 开发)在Linux中使用docker
可以看到有一个正在运行的tomcat,ID是193871cd2b1b,版本是latest,运行了一分钟,端口号是8080,容器的名字叫mytomcat。

退出这个tomcat程序(指定的是容器的ID而非容器的名字):

docker stop 193871cd2b1b

再次启用这个容器:

docker start 193871cd2b1b

删除掉这个容器:

docker rm 193871cd2b1b

主机端口映射到容器内部端口:

docker run -d -p 8888:8080 tomcat

【spring boot笔记】12.(Web 开发)在Linux中使用docker
如果不做一定的配置,容器外部是无法通过网络连接到容器内部的。比如如果这个不做端口映射,主机的浏览器就无法连接上正在运行的tomcat。端口映射可以通过配置一个外部端口让容器外部通过这个端口来访问。

现在在主机的浏览器中访问虚拟机IP地址:8888,就可以访问到容器内的tomcat了:
【spring boot笔记】12.(Web 开发)在Linux中使用docker
参考:
【spring boot笔记】12.(Web 开发)在Linux中使用docker