【Docker】docker网络配置

文章目录

一、将容器连接到默认桥接网络

(1)列出当前已有网络

powershell 复制代码
docker network ls

四列分别为:网络ID、网络名称、网络驱动、作用域。

默认桥接模式(bridge)

主机网络(host)

none模式(none)

其作用域都为local,仅在docker主机范围内提供连接和网络服务

(2)启动两个运行ash的Alpine容器

powershell 复制代码
docker run -dit --name alpine1 alpine ash
docker run -dit --name alpine2 alpine ash

可见,第一遍执行该代码时,报没有对应镜像,此时它会自动从官方镜像库中拉取。

-dit:是组合选项,表示分离模式(在后台运行)、交互式(可交互操作)、伪终端(可查看输入输出)。

此时容器会连接到默认桥接网络。

(3)查看是否启动

powershell 复制代码
docker container ps

如图,状态(status)显示为up,即已经启动。

(4)查看桥接网络详细信息

powershell 复制代码
docker network inspect bridge

如上图,显示的信息包含:

docker主机和桥接网络之间网关IP、已连接的容器的相关信息

可知:

alpine1的ip地址为172.17.0.2

alpine2的ip地址为172.17.0.3

(5)连接容器

powershell 复制代码
docker attach alpine1

"#"说明在容器中用户以root用户身份登录。

  • 查看容器的网络接口
powershell 复制代码
ip addr show

第1个接口是回环(loopback)设备。

第2个接口ip地址为172.17.0.2,与alpine1地址相同。

(6)连通性测试

通过ping命令来连接外部网络,其中 -c 2选项限制ping命令仅尝试两次。

powershell 复制代码
ping -c 2 www.baidu.com

如上图,可正常连接外部网络。

接着,还在该容器中通过ip地址来ping第二个容器(alpine2)

powershell 复制代码
ping -c 2 此处为你的alpine2的ip地址

如图所示,可连通。(注:在默认桥接网络下不能通过容器名来连通alpine2)

(7)脱离容器alpine1而不停止

快捷键:Ctrl+P、Q

返回主机命令行

(8)停止并删除容器

powershell 复制代码
docker container stop alpinel alpine2
docker container rm alpinel alpine2

二、创建用户自定义桥接网络并连接容器

(1)创建用户自定义的alpine-net网络

powershell 复制代码
docker network create --driver bridge alpine-net

(2)查看网络

powershell 复制代码
docker network ls

可以看到刚刚所创建的网络。

(3)连接

创建4个alpine容器,其中,alpine3容器只连接默认桥接网络

powershell 复制代码
docker run -dit --name alpine1 --network alpine-net alpine ash
docker run -dit --name alpine2 --network alpine-net alpine ash
docker run -dit --name alpine3 alpine ash
docker run -dit --name alpine4 --network alpine-net alpine ash

将alpine4容器连接到默认桥接网络

powershell 复制代码
docker network connect bridge alpine4

查看正在运行的容器,可见4个容器正常运行

powershell 复制代码
docker container ls

查看连接到默认桥接网络的容器信息:

powershell 复制代码
docker network inspect bridge

查看连接到alpine-net网络的容器信息:

powershell 复制代码
docker network inspect alpine-net

在用户自定义桥接网络中,可以通过容器名称来通信

powershell 复制代码
docker attach alpine1

如下图,在alpine1中,可以与2、4连通,而不能与3连通,因为alpine3容器不在alpine-net网络中

脱离alpine1(Ctrl+P+Q)

进入alpine4容器进行测试

powershell 复制代码
docker attach alpine4

测试外部网络连接:

powershell 复制代码
ping -c 2 www.baidu.com

由此可见,连接到用户自定义桥接网络的容器也可以访问外部网络。

(4)停止并删除容器

先脱离容器4(ctrl+P+Q)

powershell 复制代码
docker container stop alpine1 alpine2 alpine3 alpine4
docker container rm alpine1 alpine2 alpine3 alpine4
docker network rm alpine-net

三、设置端口映射

(1)-p选项发布特定端口

通过端口映射发布web服务

  • 创建容器时指定端口映射
powershell 复制代码
docker run --rm -d --name websrv -p 8080:80 httpd

指定容器名为websrv,httpd容器的80端口被映射到主机上的8080端口,此时就可以通过<主机ip地址>:<8080>来访问容器的web服务

(2)停止容器

powershell 复制代码
docker container stop websrv

此时进行查看,可见对应容器已被删除。(在设置时已被设置为自动删除)

四、谢谢观看!

相关推荐
酣大智1 小时前
H3C MSR3600 交换机配置 SSH
网络·ssh·智能路由器
沐浴露z1 小时前
Agent 响应延迟过高?从工具治理角度提供两条思路
前端·网络
马六六i2 小时前
市面上正规的IP驱动产业新场景新工具有哪些
大数据·网络·python·tcp/ip
可乐ea4 小时前
多模型编排的三层:框架、模型路由与提供商路由
前端·网络·人工智能·ai智能体·多智能体协作·多模型编排·大模型路由
万联WANFLOW4 小时前
全球广告网络直通美国,TikTok抢占旺季全域流量新高地
网络·业界资讯
sbjdhjd4 小时前
云安全 | Docker 容器逃逸复盘(二):2375 未授权接口如何突破容器管理边界
网络安全·docker·云原生·数据挖掘·开源·云计算·云安全
HackTwoHub4 小时前
Clown SRC skill第二代2.x最新版企业安全研究 Skill|证据优先的 SRC 与白盒审计工作流正式更新
网络·安全·web安全·网络安全·系统安全·密码学·安全架构
2601_962177304 小时前
2026年AI API Gateway怎么选?我整理了6种方案的费用、稳定性和适用场景
网络·人工智能·深度学习·gateway
白帽攻防录4 小时前
SRC 挖洞:Certighost AD CS 域控制器伪造深度复盘,CVE-2026-54121 一个普通域用户怎么拿走整个企业域
网络·安全·web安全·网络安全·域安全
青春不朽5125 小时前
requests 超时、重试、SSL 报错?9 个高频问题与一整张排错对照表
网络·网络协议·ssl