docker搭建私人鏡像倉庫-registry

第一節(jié)環(huán)境準備

軟件

docker:18.09.6

registry:2.x

主機

docker120:192.168.68.120

DServer140:192.168.68.140

實驗環(huán)境

[root@DServer140 ~]# cat /etc/redhat-release

CentOS Linux release 7.4.1708 (Core)

[root@DServer140 ~]# systemctl stop firewalld

[root@DServer140 ~]# systemctl disable firewalld

[root@DServer140 ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

[root@DServer140 ~]# setenforce 0

[root@DServer140 ~]# yum -y install iptables-services

[root@DServer140 ~]# iptables -F

[root@DServer140 ~]# service iptables save

第二節(jié)docker安裝

[root@DServer140 ~]# yum install -y yum-utils device-mapper-persistent-data lvm2

[root@DServer140 ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

[root@DServer140 ~]# yum install docker-ce-18.09.6 docker-ce-cli-18.09.6 containerd.io -y

[root@DServer140 ~]# systemctl start docker

[root@DServer140 ~]# systemctl disable docker

第三節(jié)倉庫安裝

[root@DServer140 ~]# docker search registry | head -2

NAME? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? DESCRIPTION? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? STARS? ? ? ? ? ? ? OFFICIAL? ? ? ? ? ? AUTOMATED

registry? ? ? ? ? ? ? ? ? ? ? ? ? ? The Docker Registry 2.0 implementation for s…? 2657? ? ? ? ? ? ? ? [OK]

[root@DServer140 ~]# docker pull registry

[root@DServer140 ~]# docker images

REPOSITORY? ? ? ? ? TAG? ? ? ? ? ? ? ? IMAGE ID? ? ? ? ? ? CREATED? ? ? ? ? ? SIZE

registry? ? ? ? ? ? latest? ? ? ? ? ? ? f32a97de94e1? ? ? ? 5 months ago? ? ? ? 25.8MB

[root@DServer140 ~]# mkdir /data/registry -p

[root@DServer140 ~]# docker run -d -p 5000:5000 --restart=always --name registry -v /data/registry/:/var/lib/registry registry:latest

--restart=always 該always表示會使docker daemon退出重啟后容器服務自動恢復,不必再docker start ... (容器隨服務啟動而啟動)

[root@DServer140 ~]# docker ps

CONTAINER ID? ? ? ? IMAGE? ? ? ? ? ? ? COMMAND? ? ? ? ? ? ? ? ? CREATED? ? ? ? ? ? STATUS? ? ? ? ? ? ? PORTS? ? ? ? ? ? ? ? ? ? NAMES

2158e14b53ba? ? ? ? registry:latest? ? "/entrypoint.sh /etc…"? 5 seconds ago? ? ? Up 3 seconds? ? ? ? 0.0.0.0:5000->5000/tcp? registry

第四節(jié)測試

命令:

打標簽

docker tag 鏡像ID 倉庫IP:端口/標簽名

提交倉庫

docker push 倉庫IP:端口/標簽名

從倉庫拉去鏡像

docker pull 倉庫IP:端口/標簽名

實戰(zhàn):

客戶端docker120

[root@docker120 ~]# docker images

REPOSITORY? ? ? ? ? TAG? ? ? ? ? ? ? ? IMAGE ID? ? ? ? ? ? CREATED? ? ? ? ? ? SIZE

nginx? ? ? ? ? ? ? <none>? ? ? ? ? ? ? e445ab08b2be? ? ? ? 3 weeks ago? ? ? ? 126MB

[root@docker120 ~]# docker images

REPOSITORY? ? ? ? ? TAG? ? ? ? ? ? ? ? IMAGE ID? ? ? ? ? ? CREATED? ? ? ? ? ? SIZE

nginx? ? ? ? ? ? ? <none>? ? ? ? ? ? ? e445ab08b2be? ? ? ? 3 weeks ago? ? ? ? 126MB

[root@docker120 ~]# docker tag e445ab08b2be 192.168.68.140:5000/test

[root@docker120 ~]# docker push 192.168.68.140:5000/test

The push refers to repository [192.168.68.140:5000/test]

fe6a7a3b3f27: Pushed

d0673244f7d4: Pushed

d8a33133e477: Pushed

latest: digest: sha256:dc85890ba9763fe38b178b337d4ccc802874afe3c02e6c98c304f65b08af958f size: 948

服務端DServer140

[root@DServer140 ~]# curl -XGET http://192.168.68.140:5000/v2/_catalog

{"repositories":["test"]}

[root@DServer140 ~]# curl -XGET http://192.168.68.140:5000/v2/test/tags/list

{"name":"test","tags":["latest"]}

溫馨提示:

1,設置docker自動提示功能

[root@DServer140 ~]# yum -y install bash-completion

[root@DServer140 ~]# source /etc/profile.d/bash_completion.sh

[root@DServer140 ~]# docker

attach? ? create? ? history? ? kill? ? ? node? ? ? push? ? ? save? ? ? stats? ? ? trust? ? ?

build? ? ? diff? ? ? image? ? ? load? ? ? pause? ? ? rename? ? search? ? stop? ? ? unpause? ?

commit? ? events? ? images? ? login? ? ? plugin? ? restart? ? secret? ? swarm? ? ? update? ?

config? ? exec? ? ? import? ? logout? ? port? ? ? rm? ? ? ? service? ? system? ? version? ?

container? export? ? info? ? ? logs? ? ? ps? ? ? ? rmi? ? ? ? stack? ? ? tag? ? ? ? volume? ?

cp? ? ? ? help? ? ? inspect? ? network? ? pull? ? ? run? ? ? ? start? ? ? top? ? ? ? wait

以后docker [tab] [tab]就出來提示了,很方便!

2、提交鏡像時提示?http: server gave HTTP response to HTTPS client

解決辦法:

[root@docker120 ~]# vim /etc/docker/daemon.json

{

? ? "insecure-registries":["192.168.68.140:5000"]

}

[root@docker120 ~]# systemctl restart docker


結束語:


更多精彩內容持續(xù)更新中,關注我微信公眾號,有你更精彩。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容