数据卷是一个供容器使用的特殊目录,位于容器中,可将宿主机的目录挂载到数据卷上,虽对数据卷的修改操做马上可见,而且更新数据不会影响镜像,从而实现数据在宿主机与容器之间的迁移。数据卷的使用相似于Linux下对目录进行的mount操做。docker
在docker run 命令中使用-v选项能够在容器内建立数据卷。屡次使用-v选项可建立多个数据卷。使用--name选项能够给容器建立一个友好的自定义名称。centos
下面使用centos镜像建立一个名为xxy的容器,而且建立两个数据卷分别挂载到/data1与/data2目录上bash
docker pull centos //下载镜像 docker run -d -v /data1 -v /data2 --name xxy centos 6f2307a84693aa1bf1bff46858e9f47820be7262c3181167779135c4035bad13
用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文件
数据卷容器就是一个普通的容器,专门提供数据卷给其余容器挂载使用ide
建立数据卷容器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提供端口映射机制来将容器内的服务提供给外部网络访问,是指上就是将宿主机的端口映射到容器中,使得外部网络访问宿主机的端口即可访问容器内的服务3d
实现端口映射,须要在运行docker run 命令时使用-P(大写)选项实现随机映射,Docker会随机映射一个端口范围在49000~49900的端口到容器内部开放的网络端口code
docker run -d -P httpd:centos //可以使用docker ps -a查看到本机32768端口映射到了容器中的80端口
可以使用-p(小写)指定要映射的端口blog
docker run -d -p 49280:80 httpd:centos docker ps -a
简单说,就是会在源容器和接收容器之间创建一条隧道,接收容器能够看到源容器指定的信息it
一、建立源容器
docker run -d -P --name qw1 -it httpd:centos /bin/bash
二、建立接收容器,使用--link指定链接容器以实现容器互联
docker run -d -P --name qw2 --link qw1:qw1 -it httpd:centos /bin/bash
三、测试容器互联
进入容器使用ping命令查看容器是否能互相连通
docker exec -it qw2 /bin/bash ping qw1