一、数据卷管理
1.1、挂载宿主系统
docker run -it -v /宿主机绝对路径:/容器内目录:权限 镜像名
权限: ro (容器只能查看)
[root@docker ~]# docker pull centos:7
###-v 表示数据卷 --name表示定义一个名字
[root@docker ~]# docker run -v /opt/www:/data1 --name web1 -it centos:7 /bin/bash
[root@c16c78af0517 /]# cd data1/
[root@c16c78af0517 data1]# ls
[root@c16c78af0517 data1]# touch 123.txt
[root@c16c78af0517 data1]# ls
123.txt
[rootc16c78af0517 data1]# exit
exit
[root@docker ~]# ls /opt/www/
123.txt
1.2、数据卷容器
[root@docker ~]# docker run --name web100 -v /opt/data1 -v /opt/data2 -it centos:7 /bin/bash
[root@0ea620a8f1a8 /]# cd /opt/
[root@0ea620a8f1a8 /]# ls
data1 data2
[root@0ea620a8f1a8 opt]# cd data1/
[root@0ea620a8f1a8 data1]# touch 111.txt
[root@0ea620a8f1a8 data1]# cd /opt/data2/
[root@0ea620a8f1a8 data2]# touch 222.txt
[root@0ea620a8f1a8 data2]# exit
[root@docker ~]# docker run --volumes-from web100 --name db1 -it centos:7 /bin/bash
[root@76fb4b9e9b21 /]# cd /opt/
[root@76fb4b9e9b21 opt]# ls
data1 data2
[root@76fb4b9e9b21 opt]# ls data1/
111.txt
[root@76fb4b9e9b21 opt]# ls data2/
222.txt
二、端口映射
在启动容器时,如果不配置宿主机器与虚拟机的端口映射,外部程序是无法访问虚拟机的,因此我们需要手动进行设置端口映射
- -p(小p):手动设置端口号
- -P(大p):随机指定端口号
[root@docker ~]# docker run -d -p 1122:80 httpd
[root@docker ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c7e0d20092f7 httpd "httpd-foreground" 11 seconds ago Up 11 seconds 0.0.0.0:1122->80/tcp peaceful_cerf
[root@docker ~]# docker run -d -P nginx
[root@docker ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c6235c200a3c nginx "/docker-entrypoint.…" 3 seconds ago Up 2 seconds 0.0.0.0:32768->80/tcp laughing_mccarthy
c7e0d20092f7 httpd "httpd-foreground" About a minute ago Up About a minute 0.0.0.0:1122->80/tcp peaceful_cerf
三、容器互联
创建并运行容器取名web1,端口号自动映射
[root@docker ~]# docker run -itd -P --name web1 centos:7 /bin/bash
##--link 容器名:别名
[root@docker ~]# docker run -itd -P --name web2 --link web1:web1 centos:7 /bin/bash
6e8a4999282bc31ff4f583bb5f362946154575c288fadefa710043a296a8f6d9
##进入web2
[root@docker ~]# docker exec -it 6e8a4999282b /bin/bash
##ping web1
[root@6e8a4999282b /]# ping web1
PING web1 (172.17.0.2) 56(84) bytes of data.
64 bytes from web1 (172.17.0.2): icmp_seq=1 ttl=64 time=0.092 ms
64 bytes from web1 (172.17.0.2): icmp_seq=2 ttl=64 time=0.047 ms
64 bytes from web1 (172.17.0.2): icmp_seq=3 ttl=64 time=0.111 ms
64 bytes from web1 (172.17.0.2): icmp_seq=4 ttl=64 time=0.431 ms
64 bytes from web1 (172.17.0.2): icmp_seq=5 ttl=64 time=0.045 ms
。。。