文章出處

服務器版本 Ubuntu 16.04 LTS。

安裝命令:

$ docker run -d -v /opt/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry

Registry 服務默認會將鏡像保存在/var/lib/registry目錄下,上面命令設置保存目錄在/opt/registry下,我們可以看下 Registry 容器狀態:

$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
e2b1ffd9072e        registry            "/entrypoint.sh /e..."   2 hours ago         Up About an hour    0.0.0.0:5000->5000/tcp   stoic_davinci

接著,我們登錄另外一臺服務器,將本地的已有的鏡像文件推送到私有倉庫中,首先,我們需要將鏡像的tag標記為要推送到私有倉庫,示例:

$ docker tag hwapp:v2 40.125.207.78:5000/hwapp:v3

然后,我們看下鏡像文件列表:

$ docker images
docker images
REPOSITORY                 TAG                 IMAGE ID            CREATED             SIZE
40.125.207.78:5000/hwapp   v3                  fe28b19b4410        24 hours ago        1.63GB
hwapp                      v2                  fe28b19b4410        24 hours ago        1.63GB
hwapp                      v1                  8a28e2e870d4        25 hours ago        1.63GB
microsoft/aspnetcore       latest              0f2330f1a843        26 hours ago        280MB
microsoft/dotnet           latest              a7dd4972fc95        6 days ago          1.63GB

最后,我們就可以將40.125.207.78:5000/hwapp:v3鏡像文件,推送到私有倉庫了:

$ docker push 40.125.207.78:5000/hwapp:v3

可能會出現下面的錯誤:

$ docker push 40.125.207.78:5000/hwapp:v3
The push refers to a repository [40.125.207.78:5000/hwapp]
Get https://40.125.207.78:5000/v1/_ping: http: server gave HTTP response to HTTPS client

解決方式,在本服務器操作,而不是私有倉庫所在服務器(如果已有daemon.json文件,進行修改即可):

$ touch /etc/docker/daemon.json
$ echo '{ "insecure-registries":    ["40.125.207.78:5000"] }' > /etc/docker/daemon.json
$ service docker restart

然后,再執行下推送命令就可以了,我們也可以直接構建成要推送私有倉庫的鏡像,示例:

$ docker build -t 40.125.207.78:5000/hwapp:v4 .

然后,再執行下推送命令:

$ docker push 40.125.207.78:5000/hwapp:v4

推送成功之后,我們可以檢查下私有倉庫里的鏡像文件:

$ curl http://40.125.207.78:5000/v2/_catalog
{"repositories":["hwapp"]}
$ curl http://40.125.207.78:5000/v2/hwapp/tags/list
{"name":"hwapp","tags":["v3","v4"]}

然后,我們就可以拉取私有倉庫里的鏡像文件了:

$ docker pull 40.125.207.78:5000/hwapp:v4

參考資料:


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()