在 Ubuntu 上使用 Docker 时,“设网络”通常分几种场景。下面按常见需求系统讲一下,从最基础到进阶。
Docker 安装后默认有 3 种网络:
docker network ls
bridge:默认网络(容器之间可通信)host:直接使用宿主机网络none:无网络docker network create mynet
docker run -d --name web --network mynet nginx
docker run -it --name client --network mynet ubuntu bash
✅ 好处:
docker run -d -p 8080:80 nginx
docker run -d -p 8080:80 -p 443:443 nginx
访问:
http://<Ubuntu IP>:8080
⚠️ 不适合多容器隔离场景
docker run -d --network host nginx
特点:
-p 映射docker network create appnet
docker run -d --name db --network appnet mysql
docker run -d --name web --network appnet -p 80:80 myweb
在 web 容器中可直接:
ping db
docker network create \
--subnet=172.20.0.0/16 \
mynet
docker run -d --name web \
--network mynet \
--ip=172.20.0.10 nginx
version: "3"
services:
web:
image: nginx
ports:
- "8080:80"
networks:
- mynet
db:
image: mysql
networks:
- mynet
networks:
mynet:
docker compose up -d
docker inspect <容器名>
docker exec -it <容器> ping <另一容器>
sudo ufw status
可以告诉我你是:
我可以按你的实际场景给具体命令方案。