6-搭建一個私有registry
docker hub 查找 registry
docker hub registry
可以看到部署很簡單,只有一條命令。
docker run -d -p 5000:5000 --restart always --name registry registry:2
部署私有registry
-
找一臺linux的服務器并安裝好docker
-
在此服務器上部署registry
docker run -d -p 5000:5000 --restart always --name registry registry:2
查看是否成功
root@vultr:~# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 46da49c00f3d registry:2 "/entrypoint.sh /etc…" 2 hours ago Up 2 hours 0.0.0.0:5000->5000/tcp scijet-registry
-
測試本地是否能夠連接服務器的ip
安裝telnet
sudo yum install telnet
連通5000端口
[vagrant@10 ~]$ telnet 144.202.112.240 5000
如果出現以下內容則通過
Trying 144.202.112.240... Connected to 144.202.112.240. Escape character is '^]'.
-
推送到私有registry
[vagrant@10 hello-word]$ docker push 144.202.112.240:5000/hello-word The push refers to repository [144.202.112.240:5000/hello-word] Get https://144.202.112.240:5000/v2/: http: server gave HTTP response to HTTPS client
直接推送是會報錯的,原因是docker 認為這個registry是不安全的,未認證的。
但是我們可以通過修改配置文件來解決。nano /etc/docker/daemon.json
增加此配置,含義就是聲明這個倉庫是可信任的
"insecure-registries": ["144.202.112.240:5000" ]
在docker的服務配置文件內增加一段配置
sudo nano /lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H fd:// # 在這一條配置下面 EnvironmentFile=-/etc/docker/daemon.json # 增加的內容
重啟docker服務
sudo systemctl daemon-reload # 因為文件改變 所以重新加載守護進程 sudo service docker restart # 重啟docker 服務
推送
docker push 144.202.112.240:5000/hello-word
結果
The push refers to repository [144.202.112.240:5000/hello-word] c4afafdc2fdb: Pushed latest: digest: sha256:8eb5ca719b342a746102453ec63c016f0abe92edc2a32a07b96c274b5a37bcdb size: 527
-
驗證
私有的registry是沒有web界面的,所以我們可以通過api來驗證
api 網址
返回倉庫內的鏡像,查看是否剛剛提交的鏡像在內。
也可以使用 curl
curl http://144.202.112.240:5000/v2/_catalog
-
拉取鏡像
首先我們先把剛剛創建的鏡像刪除,然后從私有倉庫內拉取回來
docker rmi 144.202.112.240:5000/hello-word
拉取
[vagrant@10 hello-word]$ docker pull 144.202.112.240:5000/hello-word Using default tag: latest latest: Pulling from hello-word Digest: sha256:8eb5ca719b342a746102453ec63c016f0abe92edc2a32a07b96c274b5a37bcdb Status: Downloaded newer image for 144.202.112.240:5000/hello-word:latest
查看是否成功拉取回來
[vagrant@10 hello-word]$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE 144.202.112.240:5000/hello-word latest bb6f23084c78 24 hours ago 857kB