5-brige容器双向通信

该博客详细介绍了如何使用Docker运行Tomcat和CentOS容器,并为它们创建自定义的网络桥接(my-bridge)。通过网络连接,实现了web和database容器之间的互通,并演示了在不同容器内进行ping测试,确保网络连通性。这展示了Docker网络管理的基础操作,对于理解容器间的通信至关重要。

1、分别运行tomcat 和centos并指定名字

[root@localhost ~]# docker run -d --name web tomcat
c478d9fe2298485f367255dacd25b854a6162965b2108d6fe577bc082dc90595
[root@localhost ~]# docker run -d -it --name database centos /bin/bash
612ebdc56e2f0c1f763defadd3e6a2ed951a854c14e8ad9c24374df3ea709847

2、列出网络服务的明细,可以看到一个默认的网桥,但是我们不用它,我们自己创建一个网桥
[root@localhost ~]# docker network ls

NETWORK ID          NAME                DRIVER              SCOPE
06716cc472bf        bridge              bridge              local

3、创建一个名为my-bridge的网桥,每创建一个网桥都会创建一个虚拟网卡(就是一个网关),
这样docker内部就可通过网桥来互连互通,但是要连接外网还得靠物理网卡。
[root@localhost ~]# docker network create -d bridge my-bridge
e402fee9f6d7297e85c820bb3543cb75c8791adf6b29ff84c879e24e39d6e2ee

[root@localhost ~]# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
e402fee9f6d7        my-bridge           bridge              local

4、用connect使web和database分别连接网桥
[root@localhost ~]# docker network connect my-bridge web
[root@localhost ~]# docker network connect my-bridge database
[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
612ebdc56e2f        centos              "/bin/bash"         25 minutes ago      Up 25 minutes                           database
c478d9fe2298        tomcat              "catalina.sh run"   26 minutes ago      Up 26 minutes       8080/tcp            web

5、进入database拼web
[root@localhost ~]# docker exec -it 612ebdc56e2f /bin/bash
[root@612ebdc56e2f /]# ping web
PING web (172.18.0.2) 56(84) bytes of data.
64 bytes from web.my-bridge (172.18.0.2): icmp_seq=1 ttl=64 time=0.325 ms
--- web ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 3ms
rtt min/avg/max/mdev = 0.076/0.200/0.325/0.125 ms
[root@612ebdc56e2f /]# exit
exit

6、进入web拼database
[root@localhost ~]# docker exec -it c478d9fe2298 /bin/bash
root@c478d9fe2298:/usr/local/tomcat# ping database
PING database (172.18.0.3) 56(84) bytes of data.
64 bytes from database.my-bridge (172.18.0.3): icmp_seq=1 ttl=64 time=0.135 ms

--- database ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1ms
rtt min/avg/max/mdev = 0.135/0.160/0.185/0.025 ms
root@c478d9fe2298:/usr/local/tomcat# 


 

引用: Docker是一个图像化界面管理工具,它提供了一个后台面板供我们操作。你可以使用以下命令来运行Docker: "docker run -d -p 8088:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer"。 引用: 如果你想编写一个Dockerfile文件,可以按照以下步骤进行:首先,使用"Docker build"命令将其构建成为一个镜像;然后,使用"Docker run"命令运行该镜像;最后,使用"Docker push"命令发布镜像到DockerHub或阿里云镜像仓库(私有/共有)。 引用: 如果你想使用Dockerfile创建一个镜像,可以按照以下步骤进行:首先,将Dockerfile和你的jar文件放在同一个目录下;然后,执行命令"Docker build -t helloworld:1.0 ."来创建镜像。 关于"docker bridge -v"的问题,它是一个无效的命令。Docker BridgeDocker的网络驱动程序,它为容器提供了网络连接。而"-v"是用来挂载卷(Volume)的命令,用于将宿主机的目录或文件挂载到容器中。所以,"docker bridge -v"不是一个有效的Docker命令,请确认你的命令是否正确。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [docker快速入门](https://blog.youkuaiyun.com/chongcilingjian/article/details/119640314)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值