Docker 高级管理-容器通信技术与数据持久化

发布于:2025-07-10 ⋅ 阅读:(15) ⋅ 点赞:(0)

(1)创建一个叫 my-net 的 bridge 类型的网络

(2)查看都有哪些网络

(3)运行一个容器井连接到新建的 my-net 网络

(4)运行一个容器井加入到 my-net 网络

2:Host 模式

由于使用了 Host 模式,容器会直接使用宿主机的网络端口,因此可以直接在宿主机上通过 localhost 访问容器内的服务,使用 ifconfig 命令可以看到容器的网络和宿主机的是一致的。

3:container 模式

创建 host2 容器共享 host1 容器的网络

査询 host1 容器的网络

査看 host2 容器的网络,确认和 host1 容器的网络一致

4:None 模式

5:0verlay 模式

6:Macvlan 模式

7:自定义网络模式

二:端口映射

1:端口映射

(1)-P(大写):指的是容器应用 PORT 随机映射到宿主机上的 PORT自动绑定所有对外提供服务的容器端口,映射的端口将会从没有使用的端口池中自动随机选择,但是如果连续启动多个容器的话,则下一个容器的端口默认是当前容器占用端口号+1。生产场景一般不使用随机映射,好处是由 docker 分配,宿主机端口不会冲突。
(2)-p(小写):(宿主机 PORT:容器 PORT)
宿主机 IP 不写表示“0.0.0.8”,宿主机 PORT 不写表示随机端口,容器 PORT 必须指定,可以同时对多个端口进行映射绑定。
指定端口映射,在标准化场景下使用频率高。
端口的取值范围 32768--61000 之间

2:随机映射端口

3:指定映射端口

(1)固定端口

(2)宿主机随机端口

三:容器互联

1:使用--1ink 选项(已逐渐被弃用)

(1)创建源容器

(2)创建接收容器

(3)测试容器互联

四:容器间通信实现案例

1:常用选项及解释
(1)--driver,-d

(2)--subnet

(3)--gateway

(4)--ip-range

(5)--internal

(6)--attachable

2:容器间通信步骤
(1)创建自定义网络

(2)创建一个不在此自定义网络的容器

(3)创建两个容器,并加入自定义网络

(4)登录到容器,测试通信结果

第二节:数据持久化技术
一:Docker 的数据管理

1:什么是数据卷

数据卷是一个可供一个或多个容器使用的特殊目录,它绕过了容器的文件系统,直接将宿主机上的目录或文件挂载到容器内部。这意味着即使容器被删除,数据卷中的数据也不会丢失,从而实现了数据的持久化存储。

2:数据卷的作用
(1)数据持久化

容器的生命周期可能是短暂的,当容器被删除时,其内部文件系统中的数据也会随之消失。而数据卷可以将数据存储在宿主机上,确保数据不会因为容器的删除而丢失。
(2)数据共享
多个容器可以同时挂载同一个数据卷,从而实现容器之间的数据共享。这对于需要共享配置文件、日志文件或其他数据的应用场景非常有用。
(3)数据备份和恢复
由于数据卷中的数据存储在宿主机上,因此可以方便地进行备份和恢复操作。
(4)分离数据和应用
将数据存储在数据卷中,可以使容器的镜像更加轻量级,只包含应用程序本身,而将数据分离出来,提高了容器的可移植性和可维护性。

2:创建匿名数据卷

3:创建具名数据卷

(1)创建具名数据卷

(2)在创建容器时挂载具名数据卷

4:共享容器数据卷 

5:挂载主机目录作为数据卷

(1)将宿主机上的/data1 目录挂载到容器内的/usr/local/apache2/htdocs 目录

docker run -dit -p 8088:80-v /data1:/usr/local/apache2/htdocs --name webe6 httpd

(2)创建测试文件

echo "ni hao">/data1/index.html

(3)访问服务

curl 192.168.10.101:8080

(1)在宿主机创建挂载目录

mkdir -p /www/{conf,html}

(2)准备数据
将编辑好的 nginx 配置文件拷贝到/www/conf
将网站代码拷贝到/www/html

(3)创建容器

docker run -d -p 9090:80
-v /www/conf/nginx.conf:/etc/nginx/nginx.conf
-v/www/html:/www/html
-v/www/nginx/log:/var/log/nginx
--name webo8 nginx "nginx"


网站公告

今日签到

点亮在社区的每一天
去签到