Docker数据卷和容器编排的使用

2020-06-17 07:15:19易采站长站整理

数据卷其他操作

Dockerfile文件里面设置数据卷


VOLUME /usr/share/nginx/html/

这样就配置了一个匿名数据卷,运行过程中,将数据写入到/usr/share/nginx/html/目录中,就可以实现容器存储层的无状态变化。

查看所有数据卷


$ docker volume ls

查看数据卷详情


$ docker volume inspect

删除数据卷


$ docker volume rm

注意:在使用中的数据卷,需要先将相关的容器停止并移除,才能删除。

数据卷容器

数据卷容器是一个专门用来管理数据卷的容器,该容器主要是供其他容器的引用和使用。

创建数据卷容器


$ docker run -itd -v /usr/share/nginx/html/ --name mydata ubuntu

引用容器


$ docker run -itd --volumes-from mydata 80:80 --name nginx1 nginx
$ docker run -itd --volumes-from mydata 81:80 --name nginx2 nginx

此时,nginx1和nginx2都挂载了同一个数据卷到/usr/share/nginx/html/目录下,三个容器中,任意一个修改了该目录下的文件,其他两个都能看到变化。

容器连接

一般来说,容器启动后,我们都是通过端口映射来使用容器提供的服务,端口映射只是使用容器服务的一种方式,除了这种方式外,还可以使用容器连接的方式来使用容器服务。

例如,有两个容器,一个容器运行一个SpringBoot项目,另一个容器运行着mysql数据库,可以通过容器连接使 SpringBoot直接访问到Mysql数据库,而不必通过端口映射来访问mysql服务。

为了案例简单,我这里举另外一个例子:

有两个容器,一个nginx容器,另一个ubuntu,我启动nginx容器,但是并不分配端口映射,然后再启动 ubuntu,通过容器连接,在ubuntu中访问nginx。

具体操作步骤如下:

首先启动一个nginx容器,但是不分配端口,命令如下:


$ docker run -d --name nginx1 nginx

容器启动成功后,在宿主机中是无法访问的。

启动ubuntu

接下来,启动一个ubuntu,并且和nginx建立连接,如下:


$ docker run -dit --name ubuntu --link nginx1:mylink ubuntu bash

这里使用–link建立连接,nginx1是要建立连接的容器,后面的mylink则是连接的别名。