docker数据管理与网络通信之数据卷与数据卷容器
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker数据管理与网络通信之数据卷与数据卷容器相关的知识,希望对你有一定的参考价值。
管理Docker容器中数据主要有两种方式:数据卷和数据卷容器。
数据卷
数据卷是一个供容器使用的特殊目录,位于容器中,可将宿主机的目录挂载到数据卷上,虽对数据卷的修改操作立刻可见,并且更新数据不会影响镜像,从而实现数据在宿主机与容器之间的迁移。数据卷的使用类似于Linux下对目录进行的mount操作。
1、创建数据卷
在docker run 命令中使用-v选项可以在容器内创建数据卷。多次使用-v选项可创建多个数据卷。使用--name选项可以给容器创建一个友好的自定义名称。
下面使用centos镜像创建一个名为xxy的容器,并且创建两个数据卷分别挂载到/data1与/data2目录上
docker pull centos //下载镜像
docker run -d -v /data1 -v /data2 --name xxy centos
6f2307a84693aa1bf1bff46858e9f47820be7262c3181167779135c4035bad13
2、挂载主机目录作为数据卷
用centos镜像创建一个名为xxy1的容器,将宿主机/var/www目录挂载到容器的/data1目录上
docker run -v /var/www:/data1 --name xxy1 -it centos /bin/bash
cd /data1
touch test123
exit //容器的/data1目录下创建test123文件
cd /var/www
ls //宿主机对应目录下也能看到test123文件
数据卷容器
数据卷容器就是一个普通的容器,专门提供数据卷给其他容器挂载使用
创建数据卷容器xx,其中所创建的数据卷分别挂载到了/data1与/data2目录上,使用--volumes-from来挂载xx容器中的数据卷到新的容器,新的容器名为xx1
docker run --name xx -v /data1 -v /data2 -it centos /bin/bash //创建容器xx
docker run -it --volumes-from xx --name xx1 centos /bin/bash //创建新容器xx1,挂载xx容器的数据卷
cd data1
touch file
ls
exit //在xx1数据卷/data1目录下创建一个文件file
docker exec -it xx /bin/bash
cd data1
ls //在xx容器中的/data1目录下可以查看到,需要开启xx和xx1两个容器才可登陆xx容器
端口映射
Docker提供端口映射机制来将容器内的服务提供给外部网络访问,是指上就是将宿主机的端口映射到容器中,使得外部网络访问宿主机的端口便可访问容器内的服务
实现端口映射,需要在运行docker run 命令时使用-P(大写)选项实现随机映射,Docker会随机映射一个端口范围在49000~49900的端口到容器内部开放的网络端口
docker run -d -P httpd:centos //可使用docker ps -a查看到本机32768端口映射到了容器中的80端口
可使用-p(小写)指定要映射的端口
docker run -d -p 49280:80 httpd:centos
docker ps -a
容器互联
简单说,就是会在源容器和接收容器之间建立一条隧道,接收容器可以看到源容器指定的信息
1、创建源容器
docker run -d -P --name qw1 -it httpd:centos /bin/bash
2、创建接收容器,使用--link指定连接容器以实现容器互联
docker run -d -P --name qw2 --link qw1:qw1 -it httpd:centos /bin/bash
3、测试容器互联
进入容器使用ping命令查看容器是否能互相连通
docker exec -it qw2 /bin/bash
ping qw1
以上是关于docker数据管理与网络通信之数据卷与数据卷容器的主要内容,如果未能解决你的问题,请参考以下文章
#云原生征文# docker数据卷与DockerFile学习