1. 登录docker hub仓库
docker login hub.xxxyyy.com
# 输入用户名及密码
# username:
# passward:
输入正确的用户名及密码后,发现报 connection refused 错误:
Error response from daemon: Get "https://hub.xxxyyy.com/": dial tcp hub.xxxyyy.com:443: connect: connection refused
解决该错误,可以通过在daemon.json文件中写入"insecure-registries"解决。
2. 创建/etc/docker/daemon.json文件
daemon.json文件默认是不存在的,所以我们需要先创建该文件。下面以Ubuntu 16.04为例,创建 /etc/docker/daemon.json 文件并写入"insecure-registries"配置。
vim /etc/docker/daemon.json
文件内容如下:
{
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"experimental": false,
"features": {
"buildkit": true
},
"insecure-registries": [
"hub.xxxyyy.com"
],
"registry-mirrors": [
"https://registry.docker-cn.com"
]
}
这里的关键是在文件里写入:
“insecure-registries”: [
“hub.xxxyyy.com”
]
“hub.xxxyyy.com” 也可直接写成域名的形式,如 “172.171.xxx.xxx”。
3. 重启daemon及docker服务
systemctl daemon-reload
systemctl restart docker
重启相关服务后,再次使用 dokcer login 发现可以登录成功。
4. 将本地镜像推送至远程 docker hub 仓库
以推送本地镜像 ubuntu:18.04 至远程私有镜像仓库为例:
(1) 由于推送到私有镜像仓库的镜像名必须符合“仓库IP:端口号/repository”的形式,因此需要按照要求修改镜像名称,具体操作指令如下。
docker tag ubuntu:18.04 hub.xxxyyy.com/common/ubuntu:18.04
(2) 推送镜像。要推送的本地镜像准备就绪后,就可以将其推送到私有镜像仓库了,具体操作指令如下:
docker push hub.xxxyyy.com/common/ubuntu:18.04
出现以下信息说明推送成功。
The push refers to repository [hub.xxxyyy.com/common/ubuntu]
1dc52a6b4de8: Pushed
18.04: digest: sha256:98706f0f213dbd440021993a82d2f70451a73698315370ae8615cc468ac06624 size: 529
此时,可在远程私有镜像仓库中查看到推送上去的 ubuntu:18.04 镜像。