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用于配置自定义网络。
热门推荐
宜川壶口瀑布:西安周边最震撼的自然美景!
补牙可以用医保吗?补牙医保全面解析
去做伤残鉴定需要带什么材料
“明哥”赵明和他不舍的荣耀
四川达州:从“中国气都”到智能制造新高地
养水仙花,教你一招,“花随人意”,想让它啥时开,就啥时开
炸鸡腿怎么点?Drumsticks了解一下!
《论语》学而篇:解读孔子的人生智慧
孔子:真正厉害的人,往往都“君子不器”,“器”是什么呢?
探秘金樱子:从栽培到养护的全方位指南
金樱子:一种兼具观赏、药用和食用价值的蔷薇科植物
银保监会投诉电话及工作时间
广东茂名十大特色美食:从香油鸡到水东鸭粥
美国国家运输安全委员会调查半挂车与派对巴士相撞事故后提出加强监管建议
电动三轮车控制器故障排查与维修指南
电动三轮车控制器故障?教你一招搞定!
海外品牌营销攻略:如何用高效策略快速打开国际市场?
哪吒能量带动多个产业
土壤成分和类型
香港白灼大虾的做法_白灼大虾怎么做_做白灼大虾的详细步骤
冬季腌菜如何保证安全食用?
自制腌菜有风险!亚硝酸盐中毒案例敲响安全警钟
刘友章教授:看看你的舌头有没有裂纹?可能是脾胃出了问题!
《食南之徒》:寻味岭南,吃出地理版图新认知
CNN盘点32种必吃中国菜 看看都有哪些?
哪吒成功学,为国潮闹海“加鸡腿”
梅关古道:古代南北经济文化交流的枢纽,为何逐渐没落?
跨越千年的艺术盛宴,韶关南华禅寺举办佛韵禅心-华彩万象文化艺术展
从《少年中国说》到新时代:解读“少年强则国强”的时代意义
阿育王时代的佛教传播:如何影响世界?