Docker 代理配置

Docker 代理配置,适用于拉取镜像、容器内应用联网、构建镜像等场景。 ▍场景一:Docker Daemon 代理(拉取镜像) 🌐 当 Docker Daemon 本身需要代理访问外部镜像仓库(如 Docker Hub)时: 1. Linux (Systemd 系统) 创建服务覆盖配置: sudo mkdir -p /etc/systemd/system/docker.service.d sudo nano /etc/systemd/system/docker.service.d/http-proxy.conf 添加内容: [Service] Environment="HTTP_PROXY=http://proxy.example.com:8080/" Environment="HTTPS_PROXY=http://proxy.example.com:8080/" Environment="NO_PROXY=localhost,127.0.0.1,*.internal" 重载并重启 Docker: sudo systemctl daemon-reload sudo systemctl restart docker 2. Windows/macOS (Docker Desktop) 打开 Docker Desktop → Settings → Resources → Proxies 填入 HTTP/HTTPS 代理及白名单: HTTP Proxy: http://proxy.example.com:8080 HTTPS Proxy: http://proxy.example.com:8080 Bypass: localhost,127.0.0.1,*.internal ▍场景二:容器运行时代理(容器内应用访问外部网络) 📦 若容器内部应用需要走代理联网: 1. 单容器运行时指定变量 docker run -e HTTP_PROXY="http://proxy.example.com:8080" \ -e HTTPS_PROXY="http://proxy.example.com:8080" \ -e NO_PROXY="localhost,127.0.0.1" \ your-image 2. 全局配置(修改 Docker 客户端配置) 编辑 ~/.docker/config.json: { "proxies": { "default": { "httpProxy": "http://proxy.example.com:8080", "httpsProxy": "http://proxy.example.com:8080", "noProxy": "localhost,127.0.0.1,*.corp" } } } 重启 Docker ▍场景三:Build 时代理(构建镜像) 🛠️ Dockerfile 构建过程中需代理下载依赖: ...

April 9, 2025 · 1 min · 173 words

Linux networkctl reload 命令详解

networkctl reload 命令会重新加载 systemd-networkd 的所有配置文件,具体路径和加载逻辑如下: 1. 配置文件的默认路径 systemd-networkd 从以下目录按优先级加载配置: (1)主配置文件目录 /etc/systemd/network/ 用户自定义配置(优先级最高,覆盖其他目录)。 /run/systemd/network/ 临时运行时配置(重启后丢失)。 /usr/lib/systemd/network/ 系统默认配置(优先级最低)。 (2)配置文件类型 .network:定义接口的网络参数(IP、路由、DNS 等)。 示例:/etc/systemd/network/10-static-eth0.network .link:物理/虚拟设备属性(MAC 地址、MTU 等)。 示例:/usr/lib/systemd/network/99-default.link .netdev:创建虚拟设备(如 VLAN、VPN)。 示例:/etc/systemd/network/20-vlan.netdev 2. reload 的具体行为 当执行 networkctl reload 时: 重新加载所有 .network、.link、.netdev 文件(包括上述三个目录中的配置)。 动态应用新配置(无需重启服务或接口): 如果接口的配置文件被修改,会根据新配置重新生效。 如果删除了某个配置文件,相关接口会恢复为 unmanaged 状态。 日志记录: 通过 journalctl -u systemd-networkd 可查看重载过程中的错误或警告。 3. 验证配置文件的路径 方法 1:通过 networkctl status 查看 sudo networkctl status eth0 | grep "Network File" 输出示例: Network File: /etc/systemd/network/10-static-eth0.network 方法 2:列出所有活动配置 sudo networkctl list | grep -i configured 输出中会显示哪些接口已被配置,并说明它们由哪个文件管理。 ...

July 12, 2023 · 1 min · 133 words

Linux 中的 networkctl 命令

networkctl 是一个用于管理和监控网络接口和连接状态的命令行工具,它是 systemd-networkd 服务的一部分。systemd-networkd 是一个网络管理工具,用于配置和管理网络接口,而 networkctl 提供了查看和管理这些接口的命令行接口。 1. 安装 networkctl 是 systemd-networkd 提供的命令行工具,用于管理和监控由 systemd-networkd 管理的网络接口和连接状态。它提供了接口状态查看、配置重载、连接控制等功能,适合在基于 systemd 的 Linux 发行版(如 Ubuntu Server、Debian、Fedora 等)中使用。 1. 基本命令 (1)列出所有网络接口 networkctl list 输出示例: IDX LINK TYPE OPERATIONAL SETUP 1 lo loopback carrier unmanaged 2 eth0 ether routable configured 3 wlan0 wlan no-carrier configuring IDX:接口索引号。 LINK:接口名称(如 eth0、wlan0)。 TYPE:接口类型(ethernet、wlan、loopback 等)。 OPERATIONAL:当前操作状态: routable:已配置并可路由(正常工作)。 no-carrier:无物理连接。 degraded:部分功能不可用(如 DHCP 失败)。 off/unmanaged:未管理。 SETUP:配置状态: configured:已通过 networkd 配置。 unmanaged:不由 networkd 管理。 configuring:正在配置(如 DHCP 获取中)。 (2)查看单个接口的详细信息 networkctl status eth0 输出示例: ...

July 10, 2023 · 2 min · 272 words