docker的端口映射、数据卷的挂载和容器之间相互通信

docker的端口映射

docker端口映射有四种方法:

~]# docker run -itd --name="t1" -p 81:80 5e35e350aded /bin/bash     //将容器的80端口映射到宿主机的81端口
~]# docker run -itd --name="t2" -p 192.168.1.60:82:80 42b4762643dc /bin/bash   //将容器的端口映射到指定IP的端口
~]# docker run -itd --name="t3" -p 80 42b4762643dc /bin/bash    //将容器的端口映射到任意的宿主机端口
~]# docker run -itd --name="t4" -p 192.168.1.60::80 42b4762643dc /bin/bash    //将容器端口映射到指定IP的任意端口
~]# docker run -itd --name="t6" -p 87:80 -p 88:3306 -p 89:8080 42b4762643dc /bin/bash     //多端口映射

docker数据卷的挂载
有直接将文件copy到容器内和将文件挂载到容器内(可实现一次挂载多次使用)

~]# docker cp index.html a0ccca4c511d:/root/    //将宿主机的文件复制到容器里
~]# docker cp a0ccca4c511d:/root/idenx.html ./   //将容器的文件复制到宿主机
~]# docker run -itd --name="aa" -v /opt/test:/opt/test 5e35e350aded  bin/bash    //将宿主机的文件映射到容器中
~]# docker run -itd --name="aa" -v /opt/test:/opt/test -v /etc/test:/etc/test 5e35e350aded  /bin/bash    //挂在多个文件 

实现一次挂载多次使用:制作数据卷容器,将数据卷容器挂载到需要挂载相同文件的容器中

~]# docker run -itd --name="test-mount" -v /opt/test:/opt/test -v /etc/test:/etc/test 5e35e350aded /bin/bash    //首先制作一个数据卷容器,定义名字为“test-mount”
~]# docker run -itd --volumes-from test-mount --name="test" 5e35e350aded /bin/bash    //直接将之前的容器挂载到当前容器

docker容器之间相互通信

~]# docker run -itd --name="test1" centos:tang /bin/bash   //首先启动一个容器
7967ec5c848a56e50028fbdc9ced6ef452aa5e8d36c274057637398e3e3aaf06
~]# docker run -itd --name="test2" centos:tang /bin/bash  //再启动一个容器
1a516bb02e49f07af82015d2a6ef014f4382a2e902afc5d4a839f7143ebfeecf
~]# docker inspect 7967  //通过docker inspect查看容器的底层信息可查看到IP
~]# docker inspect 1a51  //通过docker inspect查看容器的底层信息可查看到IP

这是容器名为test1的IP:可查看到ip为172.17.0.2、网关为:172.17.0.1、子网掩码为16位(255.255.0.0)
docker的端口映射、数据卷的挂载和容器之间相互通信_第1张图片
进入到容器test2里面利用ping命令测试是否可以通信

~]# docker exec -it  1 /bin/bash     //进入到名为test2容器中
1a516bb02e49 /]# ping 172.17.0.2     //用ping命令ping容器test1的IP
PING 172.17.0.2 (172.17.0.2) 56(84) bytes of data.
64 bytes from 172.17.0.2: icmp_seq=1 ttl=64 time=0.063 ms
64 bytes from 172.17.0.2: icmp_seq=2 ttl=64 time=0.047 ms

容器实现随docker的启动而启动

 ~]# docker run -itd -p 8888:80 --name test --restart=always 470671670cac /bin/bash
 //使用--restart=always参数
 ~]# systemctl restart docker
~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                  NAMES
68fc4c0e98c4        470671670cac        "/bin/bash"         3 hours ago         Up 2 seconds        0.0.0.0:8888->80/tcp   test
 

你可能感兴趣的:(学习)