Docker联网
封面图
•
2026-03-27
•
Docker
12
0
0
0
Docker 的网络功能非常强大,它允许容器之间、容器与宿主机之间以及容器与外部网络之间的通信。Docker 提供了多种网络模式,可以根据实际需求选择合适的网络配置。 以下是 Docker 网络的常见类型和使用方法: --- ## 一、Docker 网络类型 ### 1. **Bridge 模式(默认)** - **特点**:每个容器在 `docker0` 网桥上获得一个独立的 IP 地址。 - **适用场景**:大多数情况下使用,默认模式。 - **命令示例**: ```bash docker run -d --name my_container --network bridge my_image ``` ### 2. **Host 模式** - **特点**:容器共享宿主机的网络栈,没有隔离。 - **适用场景**:需要直接访问宿主机网络,比如性能敏感型应用。 - **命令示例**: ```bash docker run -d --name my_container --network host my_image ``` ### 3. **None 模式** - **特点**:容器没有网络功能,只有 `lo` 接口。 - **适用场景**:不需要网络连接的容器。 - **命令示例**: ```bash docker run -d --name my_container --network none my_image ``` ### 4. **自定义 Bridge 网络** - **特点**:可以创建自定义的网桥网络,便于管理多个容器之间的通信。 - **命令示例**: ```bash docker network create my_bridge_network docker run -d --name my_container --network my_bridge_network my_image ``` ### 5. **Overlay 网络(适用于 Docker Swarm)** - **特点**:用于跨多台 Docker 主机的容器通信。 - **适用场景**:Docker Swarm 集群中。 - **命令示例**: ```bash docker network create --driver overlay my_overlay_network ``` --- ## 二、查看 Docker 网络信息 ### 查看所有网络 ```bash docker network ls ``` ### 查看某个网络详情 ```bash docker network inspect <network_name> ``` ### 查看容器网络信息 ```bash docker inspect <container_name_or_id> ``` --- ## 三、容器间通信 ### 1. 使用默认 Bridge 网络 - 容器可以通过 IP 或容器名互相访问(前提是处于同一网络)。 ### 2. 使用自定义网络 - 自定义网络支持通过容器名进行 DNS 解析。 - 示例: ```bash docker run -d --name webapp --network my_network nginx docker run -d --name db --network my_network mysql ``` 在 `webapp` 容器中,可以通过 `db` 访问 MySQL 容器。 --- ## 四、端口映射(Port Mapping) 将容器的端口映射到宿主机的端口: ```bash docker run -d -p 8080:80 --name my_web nginx ``` - `-p` 表示映射,格式为:`宿主机端口:容器端口` --- ## 五、Docker 网络配置文件 Docker 的网络配置通常位于 `/etc/docker/daemon.json`,可以在这里设置默认网络等参数。 例如,设置默认网络为自定义网络: ```json { "default-network": "my_bridge_network" } ``` --- ## 六、常见问题排查 ### 1. 容器无法访问外网 - 检查防火墙或安全组是否阻止了流量。 - 检查 Docker 的网络配置是否正确。 ### 2. 容器之间无法通信 - 确保它们处于同一个网络中。 - 检查容器名是否拼写正确。 ### 3. 容器无法通过域名访问 - 确保使用的是自定义网络(支持 DNS 解析)。 - 可以手动添加 `--add-host` 参数指定域名解析。 --- ## 七、总结 | 模式 | 是否有网络隔离 | 是否支持 DNS | 适用场景 | |------|----------------|--------------|----------| | Bridge | 是 | 支持(同网络内) | 多数场景 | | Host | 否 | 不支持 | 性能敏感 | | None | 是 | 不支持 | 不需要网络 | | Overlay | 是 | 支持 | 集群环境 | --- 如果你有具体的网络需求(如搭建 Web 服务、数据库集群、微服务架构等),欢迎告诉我,我可以给出更详细的配置建议!
上一篇:
Docker 容器连接
下一篇:
Docker Hello World例子
标题录入,一次不能超过6条
留言
评论