Docker 设置代理的三种方法(2024年12月19日亲自测试)

Docker 设置代理的三种方法

在 Docker 中设置代理是非常常见的需求,尤其是在某些需要通过代理访问外部资源的网络环境下。本文将介绍三种配置 Docker 使用代理的常见方法:通过 daemon.json 配置镜像加速器、通过 daemon.json 配置 HTTP/HTTPS 代理、以及通过 docker.service 配置代理。

方式一 配置 daemon.json 镜像加速器

通过修改 Docker 的配置文件 daemon.json 来配置镜像加速器,可以加速 Docker 镜像的拉取速度,尤其是在国内环境下。操作步骤如下:

  1. 编辑 /etc/docker/daemon.json 文件:

    bash 复制代码
    sudo vim /etc/docker/daemon.json
  2. 添加镜像加速器配置:

    json 复制代码
    {
      "registry-mirrors": [
        "https://hub-mirror.c.163.com",
        "https://docker.mirrors.ustc.edu.cn",
        "https://ueo0uggy.mirror.aliyuncs.com",
        "https://docker.m.daocloud.io",
        "https://cf-workers-docker-io-apl.pages.dev",
        "http://95.169.25.181"
      ]
    }
  3. 保存并退出编辑器,然后重启 Docker 服务:

    bash 复制代码
    sudo systemctl restart docker

您可以通过 docker info 命令查看当前 Docker 配置,包括是否成功加载了镜像加速器。

bash 复制代码
docker info | grep -i 'Registry Mirrors'

如果配置成功,您会看到类似以下的输出:

复制代码
Registry Mirrors:
 https://hub-mirror.c.163.com
 https://docker.mirrors.ustc.edu.cn
 https://ueo0uggy.mirror.aliyuncs.com
 https://docker.m.daocloud.io
 https://cf-workers-docker-io-apl.pages.dev
 http://95.169.25.181

这表示镜像加速器已经成功配置并生效。

  1. 拉取镜像进行测试

另一种验证方法是通过拉取一个镜像来检查是否使用了镜像加速器。您可以尝试拉取一个常见的 Docker 镜像,例如 hello-world

bash 复制代码
docker pull hello-world

如果您配置了国内的镜像加速器,并且能够快速完成镜像拉取,那么镜像加速器已经生效。如果拉取速度较慢,可能说明加速器没有生效,您可以再次检查配置或网络环境。

方式二 配置 daemon.json HTTP/HTTPS 代理

如果需要通过代理访问 Docker 镜像或其他网络资源,可以通过修改 daemon.json 配置 HTTP 和 HTTPS 代理。以下是配置步骤:

  1. 编辑 /etc/docker/daemon.json 文件:

    bash 复制代码
    sudo vim /etc/docker/daemon.json
  2. 配置 HTTP 和 HTTPS 代理:

    json 复制代码
    {
      "proxies": {
        "http-proxy": "http://127.0.0.1:11234",
        "https-proxy": "http://127.0.0.1:11234"
      }
    }
  3. 保存并退出编辑器,重启 Docker 服务:

    bash 复制代码
    sudo systemctl restart docker
  4. 验证代理配置是否生效:

    bash 复制代码
    docker info | grep -A 1 ' HTTP Proxy'

    输出结果应显示:

    复制代码
    WARNING: bridge-nf-call-iptables is disabled
    HTTP Proxy: http://127.0.0.1:11234
    HTTPS Proxy: http://127.0.0.1:11234
    WARNING: bridge-nf-call-ip6tables is disabled

方式三 配置 docker.service 代理

另一种配置代理的方法是直接在 Docker 服务的启动配置中设置代理。通过编辑 docker.service 文件来配置 HTTP 和 HTTPS 代理。

配置步骤:

  1. 查找 docker.service 文件的位置:

    bash 复制代码
    systemctl status docker

    输出中的 Loaded 行会显示 docker.service 的路径,例如:

    复制代码
    Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
  2. 编辑 docker.service 文件,在 [Service] 部分添加代理环境变量:

    bash 复制代码
    sudo vim /lib/systemd/system/docker.service
  3. [Service] 部分添加如下内容:

    bash 复制代码
    [Service]
    Environment="HTTP_PROXY=http://127.0.0.1:8490/"
    Environment="HTTPS_PROXY=http://127.0.0.1:8490/"
  4. 保存并退出编辑器,重载 docker.service 配置并重启 Docker 服务:

    bash 复制代码
    sudo systemctl daemon-reload
    sudo systemctl restart docker
  5. 如果需要查看 Docker 启动日志,可以使用以下命令:

    bash 复制代码
    sudo journalctl -u docker.service

通过这三种方法,您可以轻松地为 Docker 配置代理,帮助您更好地管理镜像拉取和容器网络访问。选择适合您的方式进行配置,以便在使用 Docker 时更加高效、便捷。

相关推荐
码龄3年 审核中2 小时前
说说SSH的端口转发
大数据·运维·ssh
盛世隐者2 小时前
【Linux】定制Linux系统
linux·运维·服务器
行思理3 小时前
Docker 应该如何学习 分四个阶段
学习·docker·容器
..Move...4 小时前
Docker应用部署tomcat和nginx
nginx·docker·tomcat
Lxt.星翊5 小时前
MySQL(安装和卸载、数据库存储原理图)
linux·运维·windows
苹果醋35 小时前
JAVA面试汇总(二)多线程(五)
运维·vue.js·spring boot·nginx·课程设计
JustNow_Man5 小时前
Cline中模型识别任务与clinerules相关性的实现逻辑
linux·运维·ubuntu
小白银子5 小时前
零基础从头教学Linux(Day 56)
linux·运维·python
你想考研啊6 小时前
Linux下搭建Activemq的Master-Slave(共享文件模式)
linux·运维·activemq
Teamhelper_AR6 小时前
AR巡检系统:打开工业智能运维的下一幕
运维·ar