Docker Bridge网络模式配置详解:从基础概念到实战应用
创作时间:
作者:
@小白创作中心
Docker Bridge网络模式配置详解:从基础概念到实战应用
引用
CSDN
1.
https://m.blog.csdn.net/qq_36833673/article/details/145821813
在Docker容器化部署中,网络配置是一个关键环节。本文将详细介绍Docker的bridge网络模式,包括其工作原理、常用网络命令、端口映射配置以及实际应用中的注意事项。
一、Bridge模式概述
Bridge模式是Docker默认的网络模式。在这种模式下,Docker守护进程会创建一个名为docker0的虚拟网桥,容器连接到这个网桥上并获得独立的IP地址。容器之间以及容器与外部网络之间的通信都通过docker0网桥进行,需要进行网络地址转换(NAT)。
这种模式的主要优点是提供了网络隔离,每个容器都有独立的IP地址,并且桥接网络内部有DNS解析服务,可以将容器名解析为对应的IP地址,实现通过容器名访问。
二、Docker网络命令
以下是常用的Docker网络管理命令:
- 查看所有网络:
docker network ls - 创建网络:
docker network create my_network - 删除网络:
docker network rm my_network - 查看网络详细信息:
docker network inspect my_network - 将容器连接到网络:
docker network connect my_network my_container - 将容器与某个网络的连接断开:
docker network disconnect my_network my_container - 删除未使用的网络:
docker network prune
三、Nginx端口映射配置
在docker-compose.yml文件中进行端口映射配置,使用自定义的my_network网络:
services:
nginx:
image: nginx:latest
container_name: nginx
environment:
TZ: Asia/Shanghai
ports:
- "80:80"
- "443:443"
- "8090:8090"
volumes:
- /docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
- /usr/local/docker:/usr/share/nginx/html
privileged: true
networks:
- my_network
networks:
my_network:
external: true
driver: bridge
ports配置用于将容器的端口映射到宿主机端口,格式为宿主机端口:容器端口。如果没有进行端口映射,容器内的服务只能在Docker网络内部访问,外部网络无法访问。
四、后端服务端口配置
Dockerfile配置
在Dockerfile中配置端口:
FROM openjdk:17
RUN mkdir -p /ruoyi/logs
WORKDIR /ruoyi
ENV SERVER_PORT=9016 \
LC_ALL=C.UTF-8 \
JAVA_OPTS=""
EXPOSE 9016
ADD ruoyi-admin.jar ./app.jar
ENTRYPOINT ["java", \
"-Dserver.port=${SERVER_PORT}", \
"-jar", "app.jar"]
EXPOSE指令主要用于指导镜像使用者该容器监听的端口,实际的端口映射需要在运行时通过-p参数或docker-compose.yml中的ports配置实现。
docker-compose.yml配置
services:
ruoyi-admin:
image: ruoyi-admin:v1.0
container_name: ruoyi-admin
ports:
- "9016:9016"
environment:
- SERVER_PORT=9016
- TZ=Asia/Shanghai
restart: always
networks:
- my_network
networks:
my_network:
external: true
Nginx配置
在Nginx配置文件中,需要使用容器的IP地址或容器名称进行反向代理:
server {
listen 8090;
server_name localhost;
charset utf-8;
location / {
proxy_pass http://172.24.0.2:9016;
# 或者使用容器名称
# proxy_pass http://ruoyi-admin:9016;
index index.html index.htm;
}
}
注意:在自定义Docker网络中,每个容器的localhost都指向容器自身的网络接口。因此,当需要容器间通信时,应使用容器的IP地址或容器名称,而不是localhost。
五、测试
启动Nginx和Java项目后,可以通过访问Nginx监听的端口或后端服务映射的端口来验证配置是否成功。
六、总结
- 开发环境建议使用host网络模式,因为它更简单,不需要管理端口映射。
- 测试和生产环境建议使用自定义网络模式,以实现更好的网络隔离。
- 使用自定义网络时,需要特别注意端口映射和容器间的通信方式。
network_mode和networks都是Docker网络配置相关,但功能有所不同:network_mode用于指定网络模式,而networks用于配置自定义网络。
热门推荐
消费税的计算公式 消费税怎么计算
乡村振兴在行动丨长三角见闻:农旅融合 乡村蝶变引客来
企业债权债务询证函范本及使用注意事项
乌镇游船大概多少钱 乌镇景区内部交通攻略
还能这么玩?从“看展”到“共创”,美术馆的边界正在被突破
上火导致嘴唇干燥灼热?医生建议这样做
实施5年的新国标被无视,电动车改装成“公开的秘密”
大口鲶池塘无公害高产技术
青岛市崂山区社区卫生服务中心开展家庭医生入户大走访及健康宣教活动
DeepSeek 教您构建股票交易体系
87%受访家长认为学生心理健康问题需重视
灵芝多糖的副作用和使用注意事项
癌症患者能吃灵芝孢子粉吗?被捧上天的4种保健品,其实不抗癌
哈工大周彬, 段广仁等 | 基于非奇异周期滞后滑模的指定时间控制方法
胸腺肽能提高免疫力?适合所有人?药师告诉你
权志龙〈DRAMA〉融入中文元素,音乐创新彰显中国风格流行之风!
聚乳酸——医用可降解材料的绿色革命
中国青年学者一作发Science:开发可闭环回收的热固性塑料!
激素类鼻喷剂副作用
国家公务员考试职位选择攻略:如何精准定位适合自己的岗位?
杨巨源最经典的一首早春诗,短短28个字,被传诵了1200多年
专家解读:一度房室传导阻滞多久复查一次
教你小妙招:家里的“液体黄金”要这样保存~
自由职业是什么意思?自由职业有哪些?
少林塔沟武校:传统武术的传承与现代教育的结合
租房合同中的霸王条款与定金退还指南
产妇送花该如何选(送花须知与推荐)
经常运动的人心率会慢吗
如何在白银市场中寻找投资机会
皮鞋内部怎么清洗和保养?皮鞋里面臭了怎么清洗?