Update nexus: fix conflicts and sync local changes

This commit is contained in:
Shen Wei
2026-04-26 12:06:50 +08:00
parent 191797c01b
commit f09834b5a5
2443 changed files with 254323 additions and 255154 deletions

View File

@@ -1,88 +1,88 @@
---
title: "Docker Network"
tags: [docker, networking, container]
date: 2026-04-22
---
# Docker Network
## Definition
Docker Network 是 Docker 提供的容器网络连接机制支持多种网络驱动bridge / host / overlay / macvlan / none使容器能够相互通信并与外部网络交互。
## Network Drivers
| 驱动 | 用途 | 特点 |
|------|------|------|
| **bridge** | 默认网络驱动 | 容器通过虚拟网桥通信,默认 bridge IP 为 172.17.0.1 |
| **host** | 移除网络隔离 | 容器直接使用宿主机网络栈 |
| **overlay** | Docker Swarm 多主机通信 | 跨多个 Docker daemon |
| **macvlan** | 给容器分配真实 MAC | 容器像物理机一样出现在网络中 |
## 查看与管理命令
```bash
# 查看所有网络
docker network ls
# 查看特定网络的详细信息驱动、容器、IP
docker network inspect bridge
# 查看连接了某网络的容器
docker network inspect <network_name> --format '{{range .Containers}}{{.Name}} {{end}}'
# 创建自定义 bridge 网络
docker network create --driver bridge my_network
# 删除网络
docker network rm my_network
# 删除前先断开容器连接
docker network disconnect my_network container_name
```
## Docker Compose 中的 Network
```yaml
services:
app:
networks:
- frontend
- backend
networks:
frontend:
driver: bridge
backend:
driver: bridge
```
## Compose 项目间命名冲突
Docker Compose 默认以**项目目录名**作为网络名前缀:
- 项目 A目录 `~/portainer`)→ 网络名 `portainer_default`
- 项目 B目录 `~/portainer-stack`)→ 网络名 `portainer-stack_default`
当两个项目名不同但都声明了 `portainer_network` 时,会产生警告:
> WARN: Network portainer_network declared as external, but it does not exist
**解决方案**
1. 删除旧网络:`docker network rm portainer_network`
2. 或在 compose 中声明 `external: true` 复用已存在的网络
## External Mode复用外部网络
```yaml
networks:
portainer_network:
external: true
```
声明 `external: true`Compose 不会尝试创建网络,而是直接使用已存在的同名网络。
## Related Concepts
- [[Docker Compose]] — compose 中声明式定义网络
- [[Docker堆栈]] — 堆栈中多服务共享网络
- [[桥接网络]] — Docker bridge 网络驱动
## Related Entities
- [[Portainer]] — Docker 可视化管理工具,提供网络管理 Web UI
- [[群晖 NAS]] — Docker 网络配置的平台
- [[Docker]] — 网络系统的底层平台
## See Also
- [[家庭监控方案-prometheus-grafana-node-exporter-cadvisor-blackbox]] — Prometheus 部署涉及 Docker 网络配置
---
title: "Docker Network"
tags: [docker, networking, container]
date: 2026-04-22
---
# Docker Network
## Definition
Docker Network 是 Docker 提供的容器网络连接机制支持多种网络驱动bridge / host / overlay / macvlan / none使容器能够相互通信并与外部网络交互。
## Network Drivers
| 驱动 | 用途 | 特点 |
|------|------|------|
| **bridge** | 默认网络驱动 | 容器通过虚拟网桥通信,默认 bridge IP 为 172.17.0.1 |
| **host** | 移除网络隔离 | 容器直接使用宿主机网络栈 |
| **overlay** | Docker Swarm 多主机通信 | 跨多个 Docker daemon |
| **macvlan** | 给容器分配真实 MAC | 容器像物理机一样出现在网络中 |
## 查看与管理命令
```bash
# 查看所有网络
docker network ls
# 查看特定网络的详细信息驱动、容器、IP
docker network inspect bridge
# 查看连接了某网络的容器
docker network inspect <network_name> --format '{{range .Containers}}{{.Name}} {{end}}'
# 创建自定义 bridge 网络
docker network create --driver bridge my_network
# 删除网络
docker network rm my_network
# 删除前先断开容器连接
docker network disconnect my_network container_name
```
## Docker Compose 中的 Network
```yaml
services:
app:
networks:
- frontend
- backend
networks:
frontend:
driver: bridge
backend:
driver: bridge
```
## Compose 项目间命名冲突
Docker Compose 默认以**项目目录名**作为网络名前缀:
- 项目 A目录 `~/portainer`)→ 网络名 `portainer_default`
- 项目 B目录 `~/portainer-stack`)→ 网络名 `portainer-stack_default`
当两个项目名不同但都声明了 `portainer_network` 时,会产生警告:
> WARN: Network portainer_network declared as external, but it does not exist
**解决方案**
1. 删除旧网络:`docker network rm portainer_network`
2. 或在 compose 中声明 `external: true` 复用已存在的网络
## External Mode复用外部网络
```yaml
networks:
portainer_network:
external: true
```
声明 `external: true`Compose 不会尝试创建网络,而是直接使用已存在的同名网络。
## Related Concepts
- [[Docker Compose]] — compose 中声明式定义网络
- [[Docker堆栈]] — 堆栈中多服务共享网络
- [[桥接网络]] — Docker bridge 网络驱动
## Related Entities
- [[Portainer]] — Docker 可视化管理工具,提供网络管理 Web UI
- [[群晖 NAS]] — Docker 网络配置的平台
- [[Docker]] — 网络系统的底层平台
## See Also
- [[家庭监控方案-prometheus-grafana-node-exporter-cadvisor-blackbox]] — Prometheus 部署涉及 Docker 网络配置