經過本文你將學習到如下技能:web
[root@k8s-master ~]$ docker run -d -p 5000:5000 --restart=always -v /opt/data/registry:/var/lib/registry --name registry registry:2.4.1
複製代碼
# opt下建立文件夾
[root@k8s-master ~]$ cd /opt && mkdir registry && mkdir /opt/registry/auth # 建立帳號密碼 [root@k8s-master ~]$ docker run --entrypoint htpasswd registry:2.4.1 -Bbn owater 123456 >> /opt/registry/auth/htpasswd # 運行 [root@k8s-master ~]$ docker run -d -p 5000:5000 --restart=always \ --name registry \ -v /opt/registry/auth/:/auth/ \ -e "REGISTRY_AUTH=htpasswd" \ -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \ -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \ -v /opt/registry/:/var/lib/registry/ \ registry:2.4.1 複製代碼
# 開啓遠程訪問
[root@k8s-master ~]$ vi /usr/lib/systemd/system/docker.service # 將如下內容 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock # 修改爲以下 ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock # 讓Docker支持http上傳鏡像 [root@k8s-master ~]$ echo '{ "insecure-registries":["http://10.8.135.104:5000"] }' > /etc/docker/daemon.json # 使配置生效 [root@k8s-master ~]$ systemctl daemon-reload # 從新啓動Docker服務 [root@k8s-master ~]$ systemctl restart docker # 開啓防火牆的Docker構建端口 [root@k8s-master ~]$ firewall-cmd --zone=public --add-port=2375/tcp --permanent [root@k8s-master ~]$ firewall-cmd --reload 複製代碼
非認證方式能夠經過命令查看docker
[root@k8s-master ~]$ curl http://IP:5000/v2/_catalog
複製代碼
認證方式,須要界面登陸 http://IP:5000/v2/_catalog json
# 登陸私有庫
[root@k8s-master ~]$ docker login --username=[用戶名] IP:5000 # 給鏡像打標籤,docker tag IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG] [root@k8s-master ~]$ docker tag k8s-owater/kubedocker:0.0.1-SNAPSHOT 10.8.135.104:5000/k8s-owater/kubedocker:0.0.1-SNAPSHOT # 推送私有鏡像 [root@k8s-master ~]$ docker push k8s-owater/kubedocker:0.0.1-SNAPSHOT 複製代碼
# docker exec <Registry-容器名> rm -rf /var/lib/registry/docker/registry/v2/repositories/<鏡像名>
[root@k8s-master ~]$ docker exec registry rm -rf /var/lib/registry/docker/registry/v2/repositories/k8s-owater/kubedocker # docker exec <Registry-容器名> bin/registry garbage-collect /etc/docker/registry/config.yml [root@k8s-master ~]$ docker exec registry bin/registry garbage-collect /etc/docker/registry/config.yml 複製代碼
本文使用 mdnice 排版curl