Docker 数据卷管理、端口映射、容器互联

本文介绍了Docker的数据卷管理,包括挂载宿主系统和数据卷容器。同时,详细讲解了如何进行端口映射,如使用-p和-P选项。最后,探讨了容器互联的概念,通过实例演示了创建并运行容器并自动映射端口。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、数据卷管理

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
。。。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值