五、【Docker笔记】Dockers仓库
倉庫是集中存放鏡像的地方,倉庫的概念不要與注冊服務器做混淆。注冊服務器是存放倉庫的具體服務器,每個服務器上可能有多個倉庫,一個倉庫有多個鏡像。
倉庫又可分為共有倉庫和私有倉庫,最大的共有倉庫即Docker官方提供的DockerHub。
一、Docker Hub
此為官方提供的和維護的最大公共倉庫,地址為 https://hub.docker.com 。
1、登錄
我們可以使用 docker login 命令來登錄,該命令過程需要輸入用戶名、密碼和郵箱來完成注冊和登錄,之后這些信息保存在本地的 .dockercfg 文件中。
# 0. 使用 docker login 命令登錄DockerHub
$ sudo docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: cq1415583094
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
# 1. 查看本地配置文件
2、基本操作
登錄之后,我們即可使用 docker search 命令來查找官方倉庫中的鏡像文件,找到后使用 docker pull 命令將鏡像下載到本地。
# 0. 從官方倉庫中查找 centos 鏡像
$ sudo docker search centos
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
centos The official build of CentOS. 5925 [OK]
ansible/centos7-ansible Ansible on Centos7 128 [OK]
...
# 1. 將官方提供的鏡像下載到本地
$ sudo docker pull centos
Using default tag: latest
latest: Pulling from library/centos
8a29a15cefae: Pull complete
Digest: sha256:fe8d824220415eed5477b63addf40fb06c3b049404242b31982106ac204f6700
Status: Downloaded newer image for centos:latest
docker.io/library/centos:latest
# 2. 將剛才下載的上傳到倉庫
# 2.1 將剛才的鏡像tag做修改
$ sudo docker tag centos:latest cq1415583094/centos:latest
# 2.2 上傳自己的鏡像
$ sudo docker push cq1415583094/centos:latest
The push refers to repository [docker.io/cq1415583094/centos]
0683de282177: Mounted from library/centos
latest: digest: sha256:9e0c275e0bcb495773b10a18e499985d782810e47b4fce076422acb4bc3da3dd size: 529
# 3. 搜索自己的centos
$ sudo docker search cq1415583094/centos
3、自動創建
當我們創建了鏡像,安裝了軟件,當此時軟件發布了新的版本,若要更新則需要我們手動更新鏡像。而Docker為我們提供了自動創建的過程。
不過在使用該功能時,需要我們通過DockerHub指定跟蹤一個目標網站(支持GitHub/BitBucket)上的項目,若發現項目有新的提交則自動創建。關于配置自動創建步驟如下:
創建并登錄DockerHub以及目標網站。并在目標網站連接賬戶到DockerHub。
在DockerHub上配置一個自動創建。
選取一個目標網站上的項目和分支。當然該項目需要含Dockerfile。
指定Dockerfile的位置,并提交創建。
二、DaoCloud
Docker官方倉庫有時訪問比較慢,此時可以使用國內提供的倉庫,目前國內的倉庫有DaoCloud,地址為 https://hub.daocloud.io/ ,在倉庫中可以搜索到centos的各個版本。
# 從DaoCloud倉庫拉取centos7鏡像
$ sudo docker pull daocloud.io/library/centos:7
ab5ef0e58194: Pull complete
Digest: sha256:285bc3161133ec01d8ca8680cd746eecbfdbc1faa6313bd863151c4b26d7e5a5
Status: Downloaded newer image for daocloud.io/library/centos:7
daocloud.io/library/centos:7
# 查看鏡像
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
daocloud.io/library/centos 7 5e35e350aded 4 months ago 203MB
三、創建和使用私有倉庫
公司中一般都有自己的一個私有倉庫,對于私有倉庫中的鏡像也只是公司內部使用。那么我們就來創建一個私有倉庫。
1、使用registry鏡像創建私有倉庫
# 0. 使用 registry 鏡像來搭建私有倉庫, 并將容器中的 5000端口對應系統的 5000端口
$ sudo docker run -d -p 5000:5000 registry
這樣我們的私有倉庫即搭建完成,對應的地址為 192.168.0.128:5000
2、管理私有倉庫鏡像
2.1、上傳鏡像到私有倉庫
# 0. 查看本地cnetos鏡像
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos 7 5e35e350aded 4 months ago 203MB
# 1. 修改tag為私有倉庫的tag
$ sudo docker tag centos:7 192.168.0.128:5000/centos:7
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
test/ubuntu v1.0 0f5b15a68f76 14 hours ago 64.2MB
test latest e5bc93985af0 2 days ago 64.2MB
user/test latest e5bc93985af0 2 days ago 64.2MB
ubuntu latest 4e5021d210f6 2 weeks ago 64.2MB
registry latest 708bc6af7e5e 2 months ago 25.7MB
cq1415583094/centos latest 470671670cac 2 months ago 237MB
centos latest 470671670cac 2 months ago 237MB
daocloud.io/library/centos 7 5e35e350aded 4 months ago 203MB
centos 7 5e35e350aded 4 months ago 203MB
[root@localhost opt]# sudo docker tag centos:7 192.168.0.128:5000/centos:7
[root@localhost opt]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
192.168.0.128:5000/centos 7 5e35e350aded 4 months ago 203MB
# 2. 使用 docker push 命令上傳
$ sudo docker push 192.168.0.128:5000/centos
# 說明:有時在push中會報https錯 這因為是docker私有倉庫服務器,默認是基于https傳輸的,所以我們需要在客戶端做相關設置,不使用https傳輸。
$ vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://hub.docker.com"],
"insecure-registries":["192.168.0.128:5000"]
}
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
歡迎志同道合朋友,加QQ群:119126035,QQ:1415583094,微信:cq1415583094
我的GitHub:https://github.com/cq1415583094
公眾號歡迎關注
總結
以上是生活随笔為你收集整理的五、【Docker笔记】Dockers仓库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 七大国内外主流云计算开发平台
- 下一篇: 怎么创建具有真实纹理的CG场景岩石?