Docker配置汇总

Docker配置镜像源

更换方法

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

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

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

cat > /etc/docker/daemon.json << EOF
{
    "registry-mirrors": [
        "https://dockerproxy.net",
        "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端口,可以设置为:

mkdir -p /etc/systemd/system/docker.service.d
cat > /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 buildx配置代理

设置 Buildx Builder 的驱动选项,在这里是为 BuildKit 注入代理环境变量:

​ • env.http_proxy=127.0.0.1:7890: 指定 HTTP 请求通过代理地址 127.0.0.1:7890。

​ • env.https_proxy=127.0.0.1:7890: 指定 HTTPS 请求通过相同的代理地址。

#创建buildx环境,并使用本机代理
docker buildx create --use --name mybuilder --driver-opt env.http_proxy=127.0.0.1:7890 --driver-opt env.https_proxy=127.0.0.1:7890

#创建buildx环境,未使用本机代理
docker buildx create --use --name mybuilder --driver-opt image=swr.cn-east-3.myhuaweicloud.com/lomtom-common/buildkit:buildx-stable-1 

#修改所使用的buildx环境
docker buildx use mybuilder

#删除环境
docker buildx rm mybuilder

验证代理配置: 查看当前 Builder 配置:

docker buildx inspect mybuilder

输出中应该包含类似以下内容:

Driver Options:        env.https_proxy="127.0.0.1:7890" env.http_proxy="127.0.0.1:7890"

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>

不安全的镜像仓库

Docker

在Linux系统上,可以通过编辑/etc/docker/daemon.json文件,在里面加入如下内容

//配置要使用的仓库地址 ip和port替换成自己的
{"insecure-registries":["仓库ip:port"]}
systemctl daemon-reload && systemctl restart docker

安装Docker

yum

yum -y install yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
yum -y install docker-ce
lomtom

标题:Docker配置汇总

作者:lomtom

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