Debian系统Docker网络如何配置
Debian系统Docker网络配置指南
1. 前置准备:安装Docker
在配置Docker网络前,需先确保系统已安装Docker。若未安装,可通过以下命令完成安装:
sudo apt update
sudo apt install docker.io
安装完成后,启动Docker服务并设置开机自启:
sudo systemctl start docker
sudo systemctl enable docker
2. 查看现有Docker网络
Docker安装后会默认创建3个核心网络(bridge
、host
、none
),可通过以下命令查看:
docker network ls
输出示例:
NETWORK ID NAME DRIVER SCOPE
c28d17d73c84 bridge bridge local
3fb51aa17d58 host host local
efd43a1d9d5c none null local
3. 配置Docker网络模式
Docker支持4种核心网络模式,可根据需求选择:
(1)Bridge模式(默认)
工作原理:Docker会创建虚拟网桥docker0
,容器连接到该网桥,通过NAT规则与外部通信。
配置方式:
- 直接运行容器(不指定
--network
参数,默认使用bridge
):
其中docker run -d --name my_nginx -p 8080:80 nginx
-p 8080:80
将容器的80端口映射到主机的8080端口(外部访问需通过主机IP:8080
)。
特点:容器间通过docker0
网桥通信,需端口映射才能从外部访问,适用于大多数常规应用。
(2)Host模式
工作原理:容器直接使用主机的网络栈,不进行网络隔离。
配置方式:
docker run -d --name my_nginx --network host nginx
特点:容器端口与主机端口直接共享(如容器内80端口即主机80端口),性能最高,但缺乏隔离性,适用于对网络性能要求极高的场景(如高频交易系统)。
(3)None模式
工作原理:容器仅保留lo
(回环)接口,无外部网络访问能力。
配置方式:
docker run -it --name isolated_container --network none alpine
特点:提供最高级别的网络隔离,适用于纯计算任务(如数据处理),需通过卷挂载传递数据。
(4)Container模式
工作原理:新容器与已有容器共享网络命名空间(共用IP、端口)。
配置方式:
docker run -d --name debug_container --network container:my_nginx busybox
特点:容器间实现“零距离”通信,适用于日志收集、监控代理等Sidecar模式(如debug_container
可访问my_nginx
的日志)。
4. 创建与管理自定义网络
默认的bridge
网络无法满足复杂场景(如容器间自定义域名通信),需创建自定义网络:
(1)创建自定义桥接网络
docker network create --driver bridge --subnet 192.168.1.0/24 --gateway 192.168.1.1 my_bridge
--subnet
:指定子网范围(如192.168.1.0/24
);--gateway
:指定网关地址(如192.168.1.1
);my_bridge
:自定义网络名称。
(2)运行容器并连接到自定义网络
docker run -d --name my_nginx --network my_bridge --ip 192.168.1.10 nginx
--ip
:为容器指定静态IP(可选,若未指定则自动分配)。
(3)连接已有容器到自定义网络
docker network connect my_bridge existing_container
(4)查看/删除自定义网络
- 查看网络详情:
docker inspect my_bridge
- 删除网络:
docker network rm my_bridge
5. 配置Docker守护进程网络
若需修改Docker守护进程的网络参数(如DNS、监听端口),可编辑/etc/docker/daemon.json
文件:
sudo nano /etc/docker/daemon.json
添加以下内容(示例:配置DNS、开启TCP监听):
{
"dns": ["8.8.8.8", "8.8.4.4"],
"hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2375"]
}
保存后重启Docker服务使配置生效:
sudo systemctl restart docker
6. 使用Docker Compose配置复杂网络
对于多容器应用(如Web+数据库),可使用docker-compose.yml
文件简化网络配置:
version: '3'
services:
web:
image: nginx
networks:
- my_bridge
ports:
- "8080:80"
db:
image: mysql
networks:
- my_bridge
environment:
MYSQL_ROOT_PASSWORD: 123456
networks:
my_bridge:
driver: bridge
subnet: 192.168.2.0/24
gateway: 192.168.2.1
启动服务:
docker-compose up -d
该配置会自动创建my_bridge
网络,并将web
和db
容器连接到该网络,实现容器间通过服务名(如web
、db
)通信。
通过以上步骤,可在Debian系统上完成Docker网络的配置与管理,满足不同场景的需求。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian系统Docker网络如何配置
本文地址: https://pptw.com/jishu/733802.html