五、【Docker笔记】Dockers仓库
倉(cāng)庫(kù)是集中存放鏡像的地方,倉(cāng)庫(kù)的概念不要與注冊(cè)服務(wù)器做混淆。注冊(cè)服務(wù)器是存放倉(cāng)庫(kù)的具體服務(wù)器,每個(gè)服務(wù)器上可能有多個(gè)倉(cāng)庫(kù),一個(gè)倉(cāng)庫(kù)有多個(gè)鏡像。
倉(cāng)庫(kù)又可分為共有倉(cāng)庫(kù)和私有倉(cāng)庫(kù),最大的共有倉(cāng)庫(kù)即Docker官方提供的DockerHub。
一、Docker Hub
此為官方提供的和維護(hù)的最大公共倉(cāng)庫(kù),地址為 https://hub.docker.com 。
1、登錄
我們可以使用 docker login 命令來登錄,該命令過程需要輸入用戶名、密碼和郵箱來完成注冊(cè)和登錄,之后這些信息保存在本地的 .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 命令來查找官方倉(cāng)庫(kù)中的鏡像文件,找到后使用 docker pull 命令將鏡像下載到本地。
# 0. 從官方倉(cāng)庫(kù)中查找 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. 將剛才下載的上傳到倉(cāng)庫(kù)
# 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、自動(dòng)創(chuàng)建
當(dāng)我們創(chuàng)建了鏡像,安裝了軟件,當(dāng)此時(shí)軟件發(fā)布了新的版本,若要更新則需要我們手動(dòng)更新鏡像。而Docker為我們提供了自動(dòng)創(chuàng)建的過程。
不過在使用該功能時(shí),需要我們通過DockerHub指定跟蹤一個(gè)目標(biāo)網(wǎng)站(支持GitHub/BitBucket)上的項(xiàng)目,若發(fā)現(xiàn)項(xiàng)目有新的提交則自動(dòng)創(chuàng)建。關(guān)于配置自動(dòng)創(chuàng)建步驟如下:
創(chuàng)建并登錄DockerHub以及目標(biāo)網(wǎng)站。并在目標(biāo)網(wǎng)站連接賬戶到DockerHub。
在DockerHub上配置一個(gè)自動(dòng)創(chuàng)建。
選取一個(gè)目標(biāo)網(wǎng)站上的項(xiàng)目和分支。當(dāng)然該項(xiàng)目需要含Dockerfile。
指定Dockerfile的位置,并提交創(chuàng)建。
二、DaoCloud
Docker官方倉(cāng)庫(kù)有時(shí)訪問比較慢,此時(shí)可以使用國(guó)內(nèi)提供的倉(cāng)庫(kù),目前國(guó)內(nèi)的倉(cāng)庫(kù)有DaoCloud,地址為 https://hub.daocloud.io/ ,在倉(cāng)庫(kù)中可以搜索到centos的各個(gè)版本。
# 從DaoCloud倉(cāng)庫(kù)拉取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
三、創(chuàng)建和使用私有倉(cāng)庫(kù)
公司中一般都有自己的一個(gè)私有倉(cāng)庫(kù),對(duì)于私有倉(cāng)庫(kù)中的鏡像也只是公司內(nèi)部使用。那么我們就來創(chuàng)建一個(gè)私有倉(cāng)庫(kù)。
1、使用registry鏡像創(chuàng)建私有倉(cāng)庫(kù)
# 0. 使用 registry 鏡像來搭建私有倉(cāng)庫(kù), 并將容器中的 5000端口對(duì)應(yīng)系統(tǒng)的 5000端口
$ sudo docker run -d -p 5000:5000 registry
這樣我們的私有倉(cāng)庫(kù)即搭建完成,對(duì)應(yīng)的地址為 192.168.0.128:5000
2、管理私有倉(cāng)庫(kù)鏡像
2.1、上傳鏡像到私有倉(cāng)庫(kù)
# 0. 查看本地cnetos鏡像
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos 7 5e35e350aded 4 months ago 203MB
# 1. 修改tag為私有倉(cāng)庫(kù)的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
# 說明:有時(shí)在push中會(huì)報(bào)https錯(cuò) 這因?yàn)槭莇ocker私有倉(cāng)庫(kù)服務(wù)器,默認(rèn)是基于https傳輸?shù)模晕覀冃枰诳蛻舳俗鱿嚓P(guān)設(shè)置,不使用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
公眾號(hào)歡迎關(guān)注
總結(jié)
以上是生活随笔為你收集整理的五、【Docker笔记】Dockers仓库的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 七大国内外主流云计算开发平台
- 下一篇: openstack之Glance介绍