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开启实验性功能
Docker的某些命令和功能需要启用实验特性才能使用。你可以通过执行docker info
命令来检查实验特性是否已经开启,查看输出中的Experimental
是否显示为true
:
# docker info
Client: Docker Engine - Community
Version: 26.1.0
Context: default
...
Experimental: true
...
如果需要启用这些实验特性,你需要对Docker的守护进程(Daemon)和命令行界面(CLI)进行配置。以下是具体的设置步骤:
启动Daemon的实验特性
- 编辑Docker的配置文件
/etc/docker/daemon.json
,添加以下内容:
{
"experimental": true
}
- 保存文件并重启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 环境)
-
编辑 Docker 宿主机的服务配置文件:
vi /usr/lib/systemd/system/docker.service
-
在文件中添加以下参数:
-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
-
保存并重启 Docker 服务:
systemctl daemon-reload && systemctl restart docker
方式二:(适用于 Docker 环境)
-
编辑 Docker 的配置文件
daemon.json
:vi /etc/docker/daemon.json
-
在文件中添加以下内容:
{ "hosts": ["tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"] }
-
保存并重启 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>