1. 程式人生 > >docker 建立本地倉庫詳解(push/pull)

docker 建立本地倉庫詳解(push/pull)

除了使用Docker Hub,還可以根據自己的需求建立似有倉庫。下面就介紹在centos7 下建立似有倉庫。本文內容基於 docker-registry v2.x 版本。

  1. 執行倉庫映象
    通過獲取官方 registry 映象來執行
$ docker run -d -p 5000:5000 --restart=always --name registry registry

預設建立的容器目錄: /var/lib/registry .你可以通過 -v 引數來將映象檔案存放在本地的指定路徑。例如下面的例子將上傳的映象放到本地的 /home/data/registry 目錄。

$ docker run -d \
    -p 5000:5000 \
    -v /home/data/registry:/var/lib/registry \
    registry
  1. push/pull似有倉庫
    建立好似有倉庫、並執行之後。就可以將自己的映象push 到似有倉庫了。
    假設似有倉庫的地址是 192.168.103.22:5000
    2.1 檢視本機映象
$ docker image ls
REPOSITORY                        TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
ubuntu                            latest              ba5877dc9bec        9 weeks ago         192.7 MB

使用 docker tag 將 ubuntu:latest 這個映象標記為 192.168.103.22:5000/ubuntu:latest。

$ docker tag ubuntu:latest 127.0.0.1:5000/ubuntu:latest
$ docker image ls
REPOSITORY                        TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
ubuntu                            latest              ba5877dc9bec        9 weeks ago         192.7 MB
192.168.103.22:5000/ubuntu:latest      latest              ba5877dc9bec        9 weeks ago         192.7 MB

2.2 使用 docker push 上傳標記的映象

$ docker push 192.168.103.22:5000/ubuntu:latest
The push refers to repository [192.168.103.22:5000/ubuntu]
373a30c24545: Pushed
a9148f5200b0: Pushed
cdd3de0940ab: Pushed
fc56279bbb33: Pushed
b38367233d37: Pushed
2aebd096e0e2: Pushed
latest: digest: sha256:fe4277621f10b5026266932ddf760f5a756d2facd505a94d2da12f4f52f71f5a size: 1568

2.3 curl 檢視倉庫中的映象

$ curl 127.0.0.1:5000/v2/_catalog
{"repositories":["ubuntu"]}

2.4 在另一臺主機(假設IP:192.168.103.23)pull該映象
首先在192.168.103.23 建立檔案 /etc/docker/daemon.json
寫入內容

{
  "insecure-registries": [
    "192.168.103.22:5000"
  ]
}

然後重啟啟動 docker

service docker restart