1. 程式人生 > >Docker 私有倉庫搭建

Docker 私有倉庫搭建

down mark xen eric minutes ont gist epo man

我們在使用Docker時 下載鏡像一般都是在外網下載並使用。可是當我們沒有外網時我們不得不自己搭建私有倉庫。
先看下流程圖:
技術分享圖片

下面我們開始搭建 私有倉庫
1、安裝docker,並設置為開機自啟
yum install docker -y
systemctl start docker
systemctl enable docker

2、下載registry 鏡像並且run起來
下載鏡像
[root@docker ~]# docker pull registry
Using default tag: latest
Trying to pull repository docker.io/library/registry ...

latest: Pulling from docker.io/library/registry
Digest: sha256:672d519d7fd7bbc7a448d17956ebeefe225d5eb27509d8dc5ce67ecb4a0bce54
Status: Downloaded newer image for docker.io/registry:latest
查看下載的鏡像
[root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker-repo.example.com:5000/hello-world-v1 latest e38bc07ac18e 2 months ago 1.85 kB
docker.io/hello-world latest e38bc07ac18e 2 months ago 1.85 kB
registry.erick.com 5000 e38bc07ac18e 2 months ago 1.85 kB
docker-repo.example.com:5000/registry v1 d1fd7d86a825 5 months ago 33.3 MB
docker.io/registry latest d1fd7d86a825 5 months ago 33.3 MB

通過剛剛下載的鏡像Run起來一個容器,並掛載目錄

[root@docker ~]# docker run -d -p 5000:5000 -v /myregistry:/var/lib/registry registry:2
查看此時剛剛創建的容器
[root@docker ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f22a2d1b8abe registry:2 "/entrypoint.sh /e..." 2 minutes ago Up 2 minutes 0.0.0.0:5000->5000/tcp xenodochial_borg
進入容器我們查看容器的目錄
[root@docker ~]# docker exec -u root -it f22a2d1b8abe sh

技術分享圖片
查看本地宿主機的 掛載文件系統

2、在”/etc/docker/“目錄下,創建”daemon.json“文件。在文件中寫入:
{
"insecure-registries": [
"docker.erick.com:5000"
]
}
如果有多個私有倉庫,則用“,”隔開,例如:
{
"insecure-registries": [
"docker.erick.com:5000",
"docker.erick.com1:5000"
]
}
重新啟動docker 服務
systemctl restart docker
修改/etc/hosts 能夠 解析到 docker.erick.com
192.168.1.39 docker.erick.com
3、開始把鏡像導入到私有倉庫
查看此時存在的docker 鏡像
[root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/hello-world latest e38bc07ac18e 2 months ago 1.85 kB
docker.io/registry 2 d1fd7d86a825 5 months ago 33.3 MB
docker.io/registry latest d1fd7d86a825 5 months ago 33.3 MB
[root@docker ~]#
為docker.io/hello-world 鏡像更名為docker.erick.com:5000/hello-world
技術分享圖片
把剛剛更改好名字的鏡像上傳至私有鏡像
技術分享圖片

可以看到我們已經把鏡像上傳到了 我們自己搭建的私有鏡像倉庫。我們看下存放倉庫的位置
先查看宿主機:
技術分享圖片
在查看容器:
技術分享圖片

docker容器實際上是掛載到宿主機的一個目錄!

Docker 私有倉庫搭建