日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Docker创建私有仓库

發布時間:2024/1/8 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Docker创建私有仓库 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Docker創建私有倉庫

1.安裝docker

docker私有庫本身就是一個docker鏡像,所以,首先要安裝docker,然后啟動這個鏡像。關于安裝docker的過程,參考另外一個文章:

安裝docker過程記錄

2.安裝私有鏡像庫

首先,拉取私有鏡像庫

[root@iZ0jl6svdf9rj5xwb0nscoZ ~]# docker pull registry:2 2: 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:2 docker.io/library/registry:2 [root@iZ0jl6svdf9rj5xwb0nscoZ ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE registry 2 b8604a3fe854 3 weeks ago 26.2MB

這里拉取標簽為2的鏡像

然后,啟動私有鏡像的容器

[root@iZ0jl6svdf9rj5xwb0nscoZ ~]# mkdir -p /opt/data/registry [root@iZ0jl6svdf9rj5xwb0nscoZ ~]# docker run --name local-regi -d -p 5000:5000 --restart=always -v /opt/data/registry:/var/lib/registry registry:2 cc672b3e0695adc0d1540ed46ae8253b6d32ed542560b8e8d3dbe1889dc1ef62 [root@iZ0jl6svdf9rj5xwb0nscoZ ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES cc672b3e0695 registry:2 "/entrypoint.sh /etc…" 4 seconds ago Up 3 seconds 0.0.0.0:5000->5000/tcp, :::5000->5000/tcp local-regi

執行結果可以看到,容器被啟動,并映射了5000端口到本地。后面就將自己的鏡像提交到私有鏡像庫。

[root@iZ0jl6svdf9rj5xwb0nscoZ ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE my-proj latest 2cfa024db852 6 seconds ago 643MB registry 2 b8604a3fe854 3 weeks ago 26.2MB java 8 d23bdf5b1b1b 4 years ago 643MB

這里我構建了一個私有鏡像"my-proj"

3.提交鏡像

要將鏡像提交到私有倉庫,首先需要對docker聲明私有鏡像服務。

[root@iZ0jl6svdf9rj5xwb0nscoZ ~]# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:16:3e:01:6e:2a brd ff:ff:ff:ff:ff:ffinet 172.17.197.46/20 brd 172.17.207.255 scope global dynamic eth0valid_lft 315358174sec preferred_lft 315358174secinet6 fe80::216:3eff:fe01:6e2a/64 scope link valid_lft forever preferred_lft forever [root@iZ0jl6svdf9rj5xwb0nscoZ ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES cc672b3e0695 registry:2 "/entrypoint.sh /etc…" 15 minutes ago Up 15 minutes 0.0.0.0:5000->5000/tcp, :::5000->5000/tcp local-regi

本機ip:172.17.197.46,已經啟動了容器“local-regi”,映射端口5000

然后,在docker客戶端注冊私有鏡像服務:

[root@iZ0jl6svdf9rj5xwb0nscoZ ~]# tee /etc/docker/daemon.json <<-'EOF' > { > "insecure-registries":["172.17.197.46:5000"] > } > EOF {"insecure-registries":["172.17.197.46:5000"] } [root@iZ0jl6svdf9rj5xwb0nscoZ ~]# systemctl daemon-reload [root@iZ0jl6svdf9rj5xwb0nscoZ ~]# systemctl restart docker

此后,當客戶端提交鏡像到私有鏡像庫,分為兩步:打標簽和提交:

[root@iZ0jl6svdf9rj5xwb0nscoZ ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE my-proj latest 2cfa024db852 14 minutes ago 643MB registry 2 b8604a3fe854 3 weeks ago 26.2MB java 8 d23bdf5b1b1b 4 years ago 643MB [root@iZ0jl6svdf9rj5xwb0nscoZ ~]# docker tag my-proj 172.17.197.46:5000/my-proj:latest [root@iZ0jl6svdf9rj5xwb0nscoZ ~]# docker push 172.17.197.46:5000/my-proj:latest The push refers to repository [172.17.197.46:5000/my-proj] 35c20f26d188: Pushed c3fe59dd9556: Pushed 6ed1a81ba5b6: Pushed a3483ce177ce: Pushed ce6c8756685b: Pushed 30339f20ced0: Pushed 0eb22bfb707d: Pushed a2ae92ffcd29: Pushed latest: digest: sha256:79d74b66dcb69e5b0facbf7a3c815167980ab9a3064c684cf68da01bba39abd8 size: 2000

經過上面的操作,鏡像已經被提交到docker私有服務。

如果客戶端像要下載這個鏡像,首先需要像上面那個描述的,注冊私有鏡像服務。然后就用下面類似的操作即可:

[root@iZ0jl6svdf9rj5xwb0nscoZ ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE registry 2 b8604a3fe854 3 weeks ago 26.2MB java 8 d23bdf5b1b1b 4 years ago 643MB [root@iZ0jl6svdf9rj5xwb0nscoZ ~]# docker pull 172.17.197.46:5000/my-proj:latest latest: Pulling from my-proj 7448db3b31eb: Already exists c36604fa7939: Already exists 29e8ef0e3340: Already exists a0c934d2565d: Already exists a360a17c9cab: Already exists cfcc996af805: Already exists 2cf014724202: Already exists 4bc402a00dfe: Already exists Digest: sha256:79d74b66dcb69e5b0facbf7a3c815167980ab9a3064c684cf68da01bba39abd8 Status: Downloaded newer image for 172.17.197.46:5000/my-proj:latest 172.17.197.46:5000/my-proj:latest [root@iZ0jl6svdf9rj5xwb0nscoZ ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE 172.17.197.46:5000/my-proj latest 2cfa024db852 18 minutes ago 643MB registry 2 b8604a3fe854 3 weeks ago 26.2MB java 8 d23bdf5b1b1b 4 years ago 643MB

4.其他注意

這個私有docker鏡像庫有三個要注意的問題:

a.鏡像存儲

首先,如果沒有特別的操作,私有鏡像作為docker的容器,在重建后,存儲的鏡像就沒有了,需要使用掛載命令,將私有鏡像存儲位置掛載到宿主機或者其他docker容器外部位置,命令如下:

docker run --name local-regi -d -p 5000:5000 --restart=always -v /opt/data/registry:/var/lib/registry registry:2

-v命令將鏡像存儲掛載到宿主機的/opt/data/registry目錄

b.容器啟動

私有鏡像服務作為執行的容器,在重啟后,需要手動啟動,可以使用restart參數,在docker服務啟動,自動啟動這個容器,再將docker服務設置為隨系統啟動即可。

docker run --name local-regi -d -p 5000:5000 --restart=always -v /opt/data/registry:/var/lib/registry registry:2

上面的命令用了–restart=always,在docker服務啟動后,自動啟動這個容器

c.管理界面

還存在的問題就是,這個私有服務的容器,內部保存著很多私有鏡像,管理起來非常不容器,這需要獨立提供一套管理界面,通常,我們可以使用“harbor”進行這類操作。關于harbor的使用方法,稍后,另起文檔記錄。

總結

以上是生活随笔為你收集整理的Docker创建私有仓库的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。