天天看點

Debain或ubuntu下搭建docker私有鏡像倉庫

作者:大智家plus
Debain或ubuntu下搭建docker私有鏡像倉庫

1 安裝docker環境

為了能快速拉取鏡像,建議配置一下docker的國内鏡像加速位址,網上這類教程很多,docker安裝此處不再贅述,也可參考《Debian及ubuntu下如何搭建docker運作環境》

2 拉取registry鏡像

root@debian:~# docker pull registry

Using default tag: latest

latest: Pulling from library/registry

79e9f2f55bf5: Pull complete

0d96da54f60b: Pull complete

5b27040df4a2: Pull complete

e2ead8259a04: Pull complete

3790aef225b9: Pull complete

Digest: sha256:169211e20e2f2d5d115674681eb79d21a217b296b43374b8e39f97fcf866b375

Status: Downloaded newer image for registry:latest

docker.io/library/registry:latest

root@debian:~# docker image ls

REPOSITORY TAG IMAGE ID CREATED SIZE

registry latest b8604a3fe854 12 months ago 26.2MB

3 在主控端上建立資料存儲目錄

root@debian:/# mkdir -p /opt/registryData

4 啟動registry容器

容器配置為背景運作,将容器服務端口映射到主控端80端口,挂載資料存儲目錄,設定容器自啟動

root@debian:/# docker run -d -p 80:5000 -v /opt/registryData:/var/lib/registry --restart=always --name localRegistry registry

3e039e259a2d03925b4a6937e1c498c568a707e99c04ce9bc29cf716ad3a40c2

root@debian:/# docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

3e039e259a2d registry "/entrypoint.sh /etc…" About a minute ago Up About a minute 0.0.0.0:80->5000/tcp, :::80->5000/tcp localRegistry

5 配置私有倉庫位址

root@debian:/# vi /etc/docker/daemon.json

{

"registry-mirrors": ["https://e4vaaqhb.mirror.aliyuncs.com"],

"insecure-registries": ["192.168.100.200"] ##新增

}

6 重新開機docker服務

root@debian:/# systemctl restart docker

root@debian:/# docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

root@debian:/# docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

3e039e259a2d registry "/entrypoint.sh /etc…" 10 minutes ago Up 3 seconds 0.0.0.0:80->5000/tcp, :::80->5000/tcp localRegistry

7 測試私有鏡像庫是否工作正常

拉取nginx鏡像

root@debian:/# docker pull nginx:latest

latest: Pulling from library/nginx

a2abf6c4d29d: Pull complete

a9edb18cadd1: Pull complete

589b7251471a: Pull complete

186b1aaa4aa6: Pull complete

b4df32aa5a72: Pull complete

a0bcbecc962e: Pull complete

Digest: sha256:0d17b565c37bcbd895e9d92315a05c1c3c9a29f762b011a10c54a66cd53c9b31

Status: Downloaded newer image for nginx:latest

docker.io/library/nginx:latest

标記本地nginx鏡像,歸入本地私有倉庫

root@debian:/# docker tag nginx:latest 192.168.100.200/nginx

将鏡像推送到本地私有倉庫

root@debian:/# docker push 192.168.100.200/nginx

Using default tag: latest

The push refers to repository [192.168.100.200/nginx]

d874fd2bc83b: Pushed

32ce5f6a5106: Pushed

f1db227348d0: Pushed

b8d6e692a25e: Pushed

e379e8aedd4d: Pushed

2edcec3590a4: Pushed

latest: digest: sha256:ee89b00528ff4f02f2405e4ee221743ebc3f8e8dd0bfd5c4c20a2fa2aaa7ede3 size: 1570

删除本地相關的nginx鏡像

root@debian:/# docker rmi 192.168.100.200/nginx nginx

Untagged: 192.168.100.200/nginx:latest

Untagged: 192.168.100.200/nginx@sha256:ee89b00528ff4f02f2405e4ee221743ebc3f8e8dd0bfd5c4c20a2fa2aaa7ede3

Untagged: nginx:latest

Untagged: nginx@sha256:0d17b565c37bcbd895e9d92315a05c1c3c9a29f762b011a10c54a66cd53c9b31

Deleted: sha256:605c77e624ddb75e6110f997c58876baa13f8754486b461117934b24a9dc3a85

Deleted: sha256:b625d8e29573fa369e799ca7c5df8b7a902126d2b7cbeb390af59e4b9e1210c5

Deleted: sha256:7850d382fb05e393e211067c5ca0aada2111fcbe550a90fed04d1c634bd31a14

Deleted: sha256:02b80ac2055edd757a996c3d554e6a8906fd3521e14d1227440afd5163a5f1c4

Deleted: sha256:b92aa5824592ecb46e6d169f8e694a99150ccef01a2aabea7b9c02356cdabe7c

Deleted: sha256:780238f18c540007376dd5e904f583896a69fe620876cabc06977a3af4ba4fb5

Deleted: sha256:2edcec3590a4ec7f40cf0743c15d78fb39d8326bc029073b41ef9727da6c851f

root@debian:/# docker image ls

REPOSITORY TAG IMAGE ID CREATED SIZE

registry latest b8604a3fe854 12 months ago 26.2MB

從本地私有鏡像庫中拉取nginx鏡像

root@debian:/# docker pull 192.168.100.200/nginx

Using default tag: latest

latest: Pulling from nginx

a2abf6c4d29d: Pull complete

a9edb18cadd1: Pull complete

589b7251471a: Pull complete

186b1aaa4aa6: Pull complete

b4df32aa5a72: Pull complete

a0bcbecc962e: Pull complete

Digest: sha256:ee89b00528ff4f02f2405e4ee221743ebc3f8e8dd0bfd5c4c20a2fa2aaa7ede3

Status: Downloaded newer image for 192.168.100.200/nginx:latest

192.168.100.200/nginx:latest

root@debian:/# docker image ls

REPOSITORY TAG IMAGE ID CREATED SIZE

192.168.100.200/nginx latest 605c77e624dd 10 months ago 141MB

registry latest b8604a3fe854 12 months ago 26.2MB

Ok,到這裡,已确認本地docker鏡像倉庫可正常運作