Docker配置汇总

Docker配置镜像源

更换方法

docker的镜像源配置在/etc/docker/daemon.json文件内,基本内容为:

{
  "registry-mirrors" : [
    "https:\/\/dockerproxy.com"
  ]
}

可更改字段registry-mirrors的内容。

cat > /etc/docker/daemon.json << 'EOF'
{
    "registry-mirrors": [
        "http://hub-mirror.c.163.com",
        "https://docker.mirrors.ustc.edu.cn",
        "https://registry.docker-cn.com"
    ]
}
EOF

# 使配置生效
systemctl daemon-reload

# 重启Docker
systemctl restart docker

数据源

中国区官方镜像https://registry.docker-cn.com 🔗

网易http://hub-mirror.c.163.com 🔗

中科大https://docker.mirrors.ustc.edu.cn 🔗

阿里云:需登陆 cr.console.aliyun.com 🔗 点击镜像工具 - 镜像加速器查看


Docker配置代理

docker的代理配置位于/etc/systemd/system/docker.service.d/http_proxy.conf

[Service]
Environment="HTTP_PROXY=代理ip:port"
Environment="HTTPS_PROXY=代理ip:port"

若代理为本地的7890端口,可以设置为:

echo /etc/systemd/system/docker.service.d/http_proxy.conf << 'EOF'
[Service]
Environment="HTTP_PROXY=127.0.0.1:7890"
Environment="HTTPS_PROXY=127.0.0.1:7890"
EOF

systemctl daemon-reload && systemctl restart docker

参考:

关于docker pull使用网络代理的配置 🔗


Docker开启实验性功能

Docker的某些命令和功能需要启用实验特性才能使用。你可以通过执行docker info命令来检查实验特性是否已经开启,查看输出中的Experimental是否显示为true

# docker info
Client: Docker Engine - Community
 Version:    26.1.0
 Context:    default
 ...
 Experimental: true
 ...

如果需要启用这些实验特性,你需要对Docker的守护进程(Daemon)和命令行界面(CLI)进行配置。以下是具体的设置步骤:

启动Daemon的实验特性

  1. 编辑Docker的配置文件/etc/docker/daemon.json,添加以下内容:
{
  "experimental": true
}
  1. 保存文件并重启Docker服务:
systemctl restart docker

启动Cli的实验特性

有两种方法可以启用CLI的实验特性:

方法一:

通过命令行或将以下命令添加到你的.bashrc文件中:

export DOCKER_CLI_EXPERIMENTAL=enabled

之后,执行source ~/.bashrc来使更改生效。

方法二:

编辑Docker的CLI配置文件~/.docker/config.json,添加或修改以下内容:

{
	"experimental": "enabled"
}

完成以上步骤后,Docker的实验性功能将被启用,允许你使用最新的Docker特性和命令。在进行这些更改时,请确保你了解实验特性可能带来的风险,因为它们可能尚未完全稳定。


Docker 远程访问

开启远程访问

方式一:(适用于 Containerd 环境)

  1. 编辑 Docker 宿主机的服务配置文件:

    vi /usr/lib/systemd/system/docker.service
    
  2. 在文件中添加以下参数:

    -H tcp://0.0.0.0:2375
    

    参数位于Service.ExecStart

    [Service]
    Type=notify
    # the default is not to use systemd for cgroups because the delegate issues still
    # exists and systemd currently does not support the cgroup feature set required
    # for containers run by docker
    ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375 --containerd=/run/containerd/containerd.sock
    ExecReload=/bin/kill -s HUP $MAINPID
    TimeoutStartSec=0
    RestartSec=2
    Restart=always
    
  3. 保存并重启 Docker 服务:

    systemctl daemon-reload && systemctl restart docker
    

方式二:(适用于 Docker 环境)

  1. 编辑 Docker 的配置文件 daemon.json

    vi /etc/docker/daemon.json
    
  2. 在文件中添加以下内容:

    {
      "hosts": ["tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"]
    }
    
  3. 保存并重启 Docker 服务:

    systemctl daemon-reload && systemctl restart docker
    

连接远程 Docker 守护进程

方式一:
在使用 Docker 命令时,通过 -H 参数指定远程主机地址。如果远程主机没有公网 IP,可以通过内网穿透实现访问。

docker -H tcp://<ip>:<port>

方式二:
设置 DOCKER_HOST 环境变量,该变量用于指定 Docker 守护进程的地址。当需要长期连接远程 Docker 守护进程时,可以将 DOCKER_HOST 设置为远程地址。

export DOCKER_HOST=tcp://<ip>:<port>
lomtom

标题:Docker配置汇总

作者:lomtom

链接:https://lomtom.cn/document/s4jbsovqhbtq