Docker容器超详细讲解(5)

可以创建一个数据容器,也就是再创建容器是指定这个容器的数据盘,然后让其他容器可以使用这个容器作为他们的数据盘,有点像继承了这个数据容器指定的数据盘作为数据盘。

首先创建一个数据容器命名为newnginx

docker create -v /mnt -it --name newnginx docker.io/nginx /bin/bash 

利用此数据容器容器运行一个容器nginx1,在数据目录/mnt 下创建一个文件

docker run --volumes-from newnginx --name nginx1 -it docker.io/nginx /bin/bash 

利用数据容器在创建一个容器nginx2,查看数据目录下容器nginx1创建的文件依旧存在,同理在nginx2的/mnt下创建文件,其他基于数据容器运行的新容器也可以看到文件

Docker容器超详细讲解

3.3 数据盘管理:

在删除容器时,docker默认不会删除其数据盘。

docker volume ls                    #查看数据盘
docker volume ls -f dangling=true        #查看未被容器使用的数据盘
docker volume rm VOLUME NAME        #删除数据盘 

Docker容器超详细讲解


如果想要删除容器时,同时删除掉其数据盘,那么可以使用-v参数。

docker rm -v newnginx 

四、网络

docker提供几种网络,它决定容器之间和外界和容器之间如何去相互通信。

docker network ls        #查看网络 

Docker容器超详细讲解

当Docker进程启动时,会在主机上创建一个名为docker0的虚拟网桥,此主机上启动的Docker容器会连接到这个虚拟网桥上。虚拟网桥的工作方式和物理交换机类似,这样主机上的所有容器就通过交换机连在了一个二层网络中。从docker0子网中分配一个IP给容器使用,并设置docker0的IP地址为容器的默认网关。在主机上创建一对虚拟网卡veth pair设备,Docker将veth pair设备的一端放在新创建的容器中,并命名为eth0(容器的网卡),另一端放在主机中,以vethxxx这样类似的名字命名,并将这个网络设备加入到docker0网桥中。

4.1 bridge桥接网络

除非创建容器的时候指定网络,不然容器就会默认的使用桥接网络。属于这个网络的容器之间可以相互通信,不过外界想要访问到这个网络的容器呢,需使用桥接网络,有点像主机和容器之间的一座桥,对容器有一点隔离作用。实际是在iptables做了DNAT规则,实现端口转发功能。可以使用iptables -t nat -vnL查看。

4.2 host主机网络

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/12605.html