029-Dcoker Networking(推荐的方式)

本文介绍如何使用Docker网络实现容器间的通信,包括网络创建、容器连接及跨主机通信等操作。通过实例演示容器如何在同一网络内进行互访,并展示了如何将现有容器加入到指定网络。

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

Docker Networking

  • Docker Networking 允许用户创建自己的网络,容器可以通过这个网络互相连接
  • 使用 Docker Networking 可完成容器的跨主机通信

相关命令

# 创建docker网络:创建一个新的桥接网络,命名为app,这个命令会返回新创建的网络的网络ID
sudo docker network create app

# 查看新创建的网络
sudo docker network inspect app

# 列出当前系统中的所有网络
sudo docker network ls

# 删除网络
sudo docker network rm app

应用

# 0.创建网络
sudo docker network create app1

# 1.拉取redis镜像
sudo docker pull redis

# 2.基于redis镜像启动两个容器,--net选项表示新容器将会在哪个网络下运行
docker run -d --net=app1 --name redis1 redis
docker run -d --net=app1 --name redis2 redis

# 3.查看app1网络下运行的容器
sudo docker network inspect app1

# 4.进入redis1
docker exec -it redis1 /bin/bash

# 5.在app1网络下的容器都是可以ping通的,主机名与IP的映射由docker自行维护
ping redis2 # 可以ping通
ping redis2.app1 # 可以ping通

# 6.安全退出redis1,进入redis2
docker exec -it redis2 /bin/bash

# 7.在redis2中ping redis1也没问题
ping redis1 # 可以ping通
ping redis1.app1 # 可以ping通

# 由于容器名与IP的映射关系由docker自行维护,因而在应用程序中可使用容器名代替容器IP
# 即使容器重启了,docker会自动更新容器名对应的IP,不会影响应用程序的正确运行

将已有容器连接到Docker网络

# 启动一个容器
sudo docker run -d --name redis3 redis

# 一个容器可以同时隶属于多个Docker网络,可以将redis3加入到app1网络
sudo docker network connect app1 redis3

# 查看app1网络下运行的容器,发现redis3已经加入进来了
sudo docker network inspect app1

# 断开redis3与app1的连接
sudo docker network disconnect app1 redis3

# 查看app1网络下运行的容器,发现redis3已经没了
sudo docker network inspect app1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值