启动自己的registry
docker pull registry
mkdir /opt/registry
docker run -d -p 5000:5000 --restart=always --name registry -v /opt/registry:/var/lib/registry registry
配置文件
cat > /etc/docker/daemon.json << EOF
{
"storage-driver": "overlay2",
"insecure-registries": ["192.168.110.138:5000"],
"registry-mirrors": ["https://docker.chenby.cn"],
"exec-opts": ["native.cgroupdriver=systemd"],
"live-restore": true
}
EOF
systemctl restart docker
往自定义仓库推送镜像
docker images
镜像地址格式
192.168.15.100:5000/egonlin/nginx:v1.18
先打标签
docker tag centos:7 192.168.110.138:5000/egonlin/centos:7
后推送
docker push 172.16.10.14:5000/egonlin/centos:7
在另外一台机器验证,pull镜像
docker pull 192.168.110.138:5000/egonlin/centos:7
扩展解决安全问题,上面的无论是谁都可以pull和push了,不合理,应该有账号认证
yum install httpd-tools -y
mkdir /opt/registry-auth -p
htpasswd -Bbn axing 123 >> /opt/registry-auth/htpasswd
重新启动容器
docker container rm -f 容器registry的id号码
docker run -d \
-p 5000:5000 \
-v /opt/registry-auth:/auth \
-v /opt/registry:/var/lib/registry \
--name register-auth \
-e "REGISTRY_AUTH=htpasswd" \
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
-e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" \
registry:2
在测试机进行登录测试
docker login -u axing -p 123 192.168.110.138:5000
然后进行push操作
docker pull 192.168.110.138:5000/egonlin/centos:7
问题总结
# 一、问题: docker登录私有harbor,发现登陆报错;
Error response from daemon:Get “https:.//.../v2/"": http: server gave HTTP response to HTTs client
# 二、解决方法:
1.在服务器中,cd到docker目录下
cd /etc/docker
2.看这个目录下有没有daemon.json 这个文件,如果没有就手动创建 touch daemon.json,然后 vim daemon.json
touch daemon.json
vim daemon.json
3.在里面写入一个类似于json格式的键值对
{ "insecure-registries":["你的harborip:端口"] }
#这里填入的就是你的harbor ip地址
4.重启docker服务
Systemctl restart docker
5.然后把docker容器都起来
docker start container_name
#container_name 就是你们docker里的容器名字,把他们都起来
6.现在再去登录docker harbor,即可登录成功
评论 (0)