文档 v2.7.0 版本已不再积极维护,你当前浏览的是一份归档快照。
最新文档请参阅 最新版本 。
Docker:启用容器支持与配置
如何在 Pigsty 启用 Docker 容器支持?Docker 的安装部署配置,以及如何解决DockerHub被“墙”的问题
Pigsty 提供了 DOCKER 模块,但默认并不安装。您可以使用 docker.yml 剧本在指定节点上安装并启用 Docker。
./docker.yml -l <ip| group| cls> # 在指定的节点、分组、集群上安装并启用 Docker
如何建配置代理服务器?
本文不会介绍如何“翻墙”,而是假设你已经有了一个可用的 HTTP(s) 代理服务器,应该如何配置,让 Docker 可以通过代理服务器,访问 docker hub 或 quay.io 等镜像站点:
你的代理服务器软件应该会提供一个形如:
http://<ip|domain>:<port> 或者 https://[user]:[pass]@<ip|domain>:<port> 的代理地址
例如,假设您使用的代理服务器配置为:
export ALL_PROXY = http://192.168.0.104:8118
export HTTP_PROXY = http://192.168.0.104:8118
export HTTPS_PROXY = http://192.168.0.104:8118
export NO_PROXY = "localhost,127.0.0.1,10.0.0.0/8,192.168.0.0/16,*.pigsty,*.aliyun.com,mirrors.*,*.myqcloud.com,*.tsinghua.edu.cn"
您可以使用 curl 命令,检验代理服务器是否可以正常工作,例如成功可以访问 Google,通常说明代理服务器工作正常。
curl -x http://192.168.0.104:8118 -I http://www.google.com
如何为Docker Daemon配置代理服务器?
如果您希望 Docker 在 Pull 镜像时使用代理服务器,那么应当在 pigsty.yml 配置文件的全局变量中,指定 proxy_env 参数:
all :
vars :
proxy_env : # global proxy env when downloading packages
no_proxy : "localhost,127.0.0.1,10.0.0.0/8,192.168.0.0/16,*.pigsty,*.aliyun.com,mirrors.*,*.myqcloud.com,*.tsinghua.edu.cn"
http_proxy : http://192.168.0.104:8118
all_proxy : http://192.168.0.104:8118
https_proxy : http://192.168.0.104:8118
那么当 Docker 剧本执行,时,这些配置会被渲染为 /etc/docker/daemon.json 中的代理配置:
{
"proxies" : {
"http-proxy" : "{{ proxy_env['http_proxy'] }}" ,
"https-proxy" : "{{ proxy_env['http_proxy'] }}" ,
"no-proxy" : "{{ proxy_env['no_proxy'] }}"
}
}
请注意,Docker Daemon 不使用 all_proxy 参数
如果您希望手工指定代理服务器,可以选则直接修改 /etc/docker/daemon.json 中的 proxies 配置;
或者也可以修改 /lib/systemd/system/docker.service (Debian/Ubuntu) 与 /usr/lib/systemd/system/docker.service 的服务定义,在 [Service] 一节中添加环境变量声明,并重启生效:
[Service]
Environment = "HTTP_PROXY=http://192.168.0.104:8118"
Environment = "HTTPS_PROXY=http://192.168.0.104:8118"
Environment = "NO_PROXY=localhost,127.0.0.1,10.0.0.0/8,192.168.0.0/16,*.pigsty,*.aliyun.com,mirrors.*,*.myqcloud.com,*.tsinghua.edu.cn"
重启后生效:
如何使用其他镜像站点?
您可以在 docker_registry_mirrors 参数中指定其他镜像站点,例如阿里云、腾讯云、清华大学等镜像站点:
[ "https://mirror.ccs.tencentyun.com" ] # tencent cloud mirror, intranet only
[ "https://registry.cn-hangzhou.aliyuncs.com" ] # aliyun cloud mirror, login required
不过目前来看,所有位于中国大陆的 DockerHub 公有镜像站都已经被封禁了,建议使用代理服务器直接访问 Docker Hub
如果您需要使用其他镜像站,例如 quay.io,可以首先执行:
docker login quay.io
username #> # input your username
password #> # input your password