欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Docker入门到专精06-容器间通信与共享数据

程序员文章站 2024-01-28 15:57:28
...

容器间Link单向通信

容器间的单向访问
Docker入门到专精06-容器间通信与共享数据

演示

分别启动两个容器

# --name 指定容器标识
docker run -d --name web tomcat
# -it 进入交互模式+后台运行/bin/bash 防止容器退出
docker run -d --name database -it centos /bin/bash

使用docker inspect 指令查询容器ip

[aaa@qq.com ~]# docker inspect web | grep IPAddress
            "SecondaryIPAddresses": null,
            "IPAddress": "172.17.0.2",
                    "IPAddress": "172.17.0.2",
[aaa@qq.com ~]# docker inspect database | grep IPAddress
            "SecondaryIPAddresses": null,
            "IPAddress": "172.17.0.3",
                    "IPAddress": "172.17.0.3",

进入web容器,尝试ping database容器

docker exec -it web /bin/bash
# ping ip成功
ping 172.17.0.3
# ping 容器名称失败
ping database

tomcat向database的单向通信,tomcat中只需要通过database进行访问(实际实验中未添加–link参数,也能实现,可能跟docker版本有关)

docker run -d --name web --link database tomcat

Bridge网桥双向通信

Docker入门到专精06-容器间通信与共享数据

  • 网桥可以将容器向外部发送的数据交给物理网卡处理
  • 网桥将容器从网络层面上进行分组

在网桥上将容器划分到同一个分组,同一个分组的容器,天然的可以网络互通

示例

容器创建

# --name 指定容器标识
docker run -d --name web tomcat
# -it 进入交互模式+后台运行/bin/bash 防止容器退出
docker run -d --name database -it centos /bin/bash

网桥创建

# 查看网桥
docker network ls
# 创建网桥
docker network create -d bridge my-bridge
# 容器绑定网桥
docker network connect my-bridge web
docker network connect my-bridge database

网络测试

docker exec -it web /bin/bash
ping database

网桥实现原理

Docker入门到专精06-容器间通信与共享数据

Volume容器间共享数据

Volume-数据卷

容器间数据共享的意义

容器不再持有具体的数据资源,多个容器持有同一份数据资源,便于数据的修改与维护

通过设置-v挂载宿主机目录

格式:
docker run --name 容器名 -v 宿主机路径:容器内挂载路径 镜像名
实例:
docker run --name t1 -v /usr/webapps:/usr/local/tomcat/webapps tomcat

通过–volumes-from 共享容器内挂载点

创建共享容器,该共享容器无需运行
docker create --name webpage -v /webapps:/tomcat/webapps tomcat /bin/true
共享容器挂载点
docker run --volumes-from webpage --name t1 -d tomcat

版权说明

本文章内容为马士兵教育《架构师必备技能docker入门到专精》课程的学习笔记