在Debian系统上配置Docker网络前,需先安装Docker。使用以下命令完成安装:
sudo apt update
sudo apt install docker.io
安装完成后,启动Docker服务并设置为开机自启,确保系统重启后Docker仍能正常运行:
sudo systemctl start docker
sudo systemctl enable docker
Docker安装后会自动创建默认网络(如bridge、host、none)。通过以下命令查看所有网络:
docker network ls
默认网络可能无法满足复杂场景需求,建议创建自定义网络(以桥接网络为例)。可通过--subnet(子网)、--gateway(网关)参数自定义网络配置:
# 基本创建命令
docker network create my_network
# 自定义子网和网关
docker network create --subnet=192.168.1.0/24 --gateway=192.168.1.1 my_custom_network
创建容器时,通过--network参数将其连接到自定义网络。若需为容器指定静态IP,可添加--ip参数:
# 连接到自定义网络(动态IP)
docker run -d --name my_nginx --network my_network nginx
# 连接到自定义网络并指定静态IP
docker run -d --name my_nginx --network my_custom_network --ip 192.168.1.10 nginx
Docker支持多种网络模式,可根据需求选择:
docker run -d --name my_nginx --network bridge nginx
docker run -d --name my_nginx --network host nginx
docker run -d --name my_nginx --network none nginx
若需为容器分配固定IP,需在创建自定义网络时指定子网和网关,并在运行容器时通过--ip参数设置IP地址(参考步骤4、5)。
使用docker inspect命令查看容器的详细网络信息(如IP地址、网关、DNS等):
docker inspect my_nginx
若不再需要某个自定义网络,可使用以下命令删除(需确保网络中无容器运行):
docker network rm my_network
若需修改Docker守护进程的网络配置(如DNS、监听端口),可编辑/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
对于多容器应用,可使用Docker Compose简化网络配置。创建docker-compose.yml文件定义网络和容器:
version: '3'
services:
web:
image: nginx
networks:
- my_bridge_network
db:
image: mysql
networks:
- my_bridge_network
networks:
my_bridge_network:
driver: bridge
subnet: 192.168.2.0/24
gateway: 192.168.2.1
通过以下命令启动服务:
docker-compose up -d
以上步骤覆盖了Debian系统下Docker网络的基础配置需求,可根据实际场景选择合适的方式(如自定义网络、静态IP、Docker Compose等)实现容器间的通信与管理。