如何通过Docker搭建一个完整的开发环境?
摘要:通过 Docker 创建开发环境 网络设置 1. 查看所有Docker网络 docker network ls 示例结果: NETWORK ID NAME DRIVER SCOPE b649b57f5bc5 bridge bridge lo
通过 Docker 创建开发环境
网络设置
1. 查看所有Docker网络
docker network ls
示例结果:
NETWORK ID NAME DRIVER SCOPE
b649b57f5bc5 bridge bridge local
7e8c2d2c0b5a host host local
6a9c8d69bfb2 none null local
bridge: Docker默认的桥接网络
host: 使用主机网络
none: 不使用网络
2. 查看特定网络的详细信息
docker network inspect nacos-net
显示信息:
网络的子网范围
网关地址
该网络下所有容器的IP和名称
3. 查看网络内的所有容器
docker network inspect nacos-net | findstr "Name" "IPAddress"
或者更简洁的方式:
docker network inspect nacos-net --format '{{ range .Containers }}{{ .Name }} - {{ .IPAddress }}{{ end }}'
更复杂的网络设置
1. 自定义桥接网络
docker network create \
--driver bridge \
--subnet 192.168.100.0/24 \
--gateway 192.168.100.1 \
--ip-range 192.168.100.0/25 \
net-name
--driver: 指定网络驱动类型为 bridge(桥接模式,Docker 默认的网络类型,用于单机容器之间的通信)
--subnet: 指定网络的子网
--gateway: 指定网关
--ip-range: 指定可用IP范围
2. Overlay网络(跨主机通信)
# 在第一个主机上创建
docker network create --driver overlay my-overlay-net
# 在第二个主机上加入
docker network connect my-overlay-net <container-name>
3. 多网络连接(微服务架构)
# 创建两个网络
docker network create frontend-net
docker network create backend-net
# 启动前端服务
docker run -d --name frontend --network frontend-net nginx
# 启动后端服务
docker run -d --name backend --network backend-net --network frontend-net app
# 启动数据库
docker run -d --name mysql --network backend-net mysql
这样设置后,前端服务可以通过frontend-net网络访问,后端服务可以通过backend-net网络访问数据库,同时也能通过frontend-net与前端通信。
