??The Begin??點(diǎn)點(diǎn)關(guān)注,收藏不迷路??
|
一、 Docker鏡像、容器的導(dǎo)入和導(dǎo)出
1.1、Docker鏡像的導(dǎo)出
docker save [options] images [images...]
docker save > uu.tar ubuntu:latest
或
docker save ubuntu:latest > uu.tar
1.2、Docker鏡像的載入
#在鏡像包所在的文件夾下操作
docker load --input uu.tar
#也可以使用
docker load -i uu.tar
或
docker load < uu.tar
1.3、Docker容器的導(dǎo)出
docker export 容器id/名稱 > 導(dǎo)出的路徑
docker export 220aee82cfea > -o mysql.tar.gz
1.4、Docker容器的導(dǎo)入
容器的導(dǎo)入
docker import - 鏡像用戶/鏡像名:鏡像版本號(hào)
cat mysql.tar.gz | docker import - test/mysql:5.7
二、 鏡像和容器導(dǎo)出和導(dǎo)入的區(qū)別:
1.鏡像導(dǎo)入 是復(fù)制的過程。
2.容器導(dǎo)入 是將當(dāng)前容器 變成一個(gè)新的鏡像。
save 和 export區(qū)別:
1)save 保存鏡像所有的信息-包含歷史信息。
2)export 只導(dǎo)出當(dāng)前的信息。
首先,兩者的操作對(duì)象不同。docker save是將一個(gè)鏡像保存為一個(gè)tar包,而docker export是將一個(gè)容器快照保存為一個(gè)tar包。
然后,docker export導(dǎo)出的容器快照文件將丟棄所有的歷史記錄和元數(shù)據(jù)信息,即僅保存容器當(dāng)時(shí)的快照狀態(tài);而docker save保存的鏡像存儲(chǔ)文件將保存完整記錄,體積也要大。
三、commit操作_本地鏡像發(fā)布到阿里云
3.1、commit操作有關(guān)步驟
提交容器副本成為新的鏡像。
docker commit -m="提交的信息" -a="作者" 容器ID 要?jiǎng)?chuàng)建的目標(biāo)鏡像名:[標(biāo)簽名]
本地鏡像發(fā)布到阿里云:
- 登錄阿里云Docker Registry
$ docker login --username=aliyun075054**** registry.cn-hangzhou.aliyuncs.com
用于登錄的用戶名為阿里云賬號(hào)全名,密碼為開通服務(wù)時(shí)設(shè)置的密碼。
您可以在訪問憑證頁(yè)面修改憑證密碼。
- 從Registry中拉取鏡像
$ docker pull registry.cn-hangzhou.aliyuncs.com/zhaohaibao/centos:[鏡像版本號(hào)]
- 將鏡像推送到Registry
$ docker login --username=aliyun075054**** registry.cn-hangzhou.aliyuncs.com
$ docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/zhaohaibao/centos:[鏡像版本號(hào)]
$ docker push registry.cn-hangzhou.aliyuncs.com/zhaohaibao/centos:[鏡像版本號(hào)]
請(qǐng)根據(jù)實(shí)際鏡像信息替換示例中的[ImageId]和[鏡像版本號(hào)]參數(shù)。
- 選擇合適的鏡像倉(cāng)庫(kù)地址
從ECS推送鏡像時(shí),可以選擇使用鏡像倉(cāng)庫(kù)內(nèi)網(wǎng)地址。推送速度將得到提升并且將不會(huì)損耗您的公網(wǎng)流量。
如果您使用的機(jī)器位于VPC網(wǎng)絡(luò),請(qǐng)使用 registry-vpc.cn-hangzhou.aliyuncs.com 作為Registry的域名登錄。
- 示例
使用"docker tag"命令重命名鏡像,并將它通過專有網(wǎng)絡(luò)地址推送至Registry。
$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
registry.aliyuncs.com/acs/agent 0.7-dfb6816 37bb9c63c8b2 7 days ago 37.89 MB
$ docker tag 37bb9c63c8b2 registry-vpc.cn-hangzhou.aliyuncs.com/acs/agent:0.7-dfb6816
使用 "docker push" 命令將該鏡像推送至遠(yuǎn)程。
$ docker push registry-vpc.cn-hangzhou.aliyuncs.com/acs/agent:0.7-dfb6816
3.2、使用" docker push" 命令將centos鏡像提交至阿里云
####將centos鏡像IMAGE ID (5d0da3dc9764)提交至阿里云
[root@zyl-server ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 605c77e624dd 19 months ago 141MB
hello-world latest feb5d9fea6a5 23 months ago 13.3kB
centos latest 5d0da3dc9764 23 months ago 231MB
[root@zyl-server ~]# docker tag 5d0da3dc9764 registry.cn-hangzhou.aliyuncs.com/zhaohaibao/centos:7.9
[root@zyl-server ~]# docker push registry.cn-hangzhou.aliyuncs.com/zhaohaibao/centos:7.9
The push refers to repository [registry.cn-hangzhou.aliyuncs.com/zhaohaibao/centos]
74ddd0ec08fa: Layer already exists
7.9: digest: sha256:a1801b843b1bfaf77c501e7a6d3f709401a1e0c83863037fa3aab063a7fdb9dc size: 529
[root@zyl-server ~]#
四、Docker私有倉(cāng)庫(kù)搭建(registry)
4.1、下載鏡像
[root@zyl-server ~]# 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@zyl-server ~]#
4.2、查看
[root@zyl-server ~]# docker images
4.3、運(yùn)行 registry
docker run -d -p 5000:5000 -v /zyl/myregistry/:/tmp/registry --privileged=true registry
默認(rèn)情況,倉(cāng)庫(kù)被創(chuàng)建在容器的/var/lib/registry目錄下,建議自行用容器數(shù)據(jù)卷映射,方便宿主機(jī)聯(lián)調(diào)
[root@zyl-server ~]# docker run -d -p 5000:5000 -v /zyl/myregistry/:/tmp/registry --privileged=true registry
4c3babd80e86c8e2b21f4ad1dffeec5ca42270e5d467bed2a93839e323bcd5c6
[root@zyl-server ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4c3babd80e86 registry "/entrypoint.sh /etc…" 10 seconds ago Up 8 seconds 0.0.0.0:5000->5000/tcp, :::5000->5000/tcp amazing_rhodes
780530eaf656 centos "/bin/bash" About an hour ago Up About an hour wizardly_dhawan
95420eae9ad9 nginx "/docker-entrypoint.…" About an hour ago Up About an hour 80/tcp great_pasteur
[root@zyl-server ~]#
瀏覽器訪問http://IP:5000/v2,顯示“{}” 說明registry運(yùn)行正常。
4.4、測(cè)試上傳鏡像到Registry
1、提交centos容器副本成為新的鏡像,Tag----》1.2 。
[root@zyl-server ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4c3babd80e86 registry "/entrypoint.sh /etc…" 5 minutes ago Up 5 minutes 0.0.0.0:5000->5000/tcp, :::5000->5000/tcp amazing_rhodes
780530eaf656 centos "/bin/bash" About an hour ago Up About an hour wizardly_dhawan
95420eae9ad9 nginx "/docker-entrypoint.…" 2 hours ago Up 2 hours 80/tcp great_pasteur
[root@zyl-server ~]# docker commit -m="centos" -a="zyl" 780530eaf656 centos:1.2
sha256:d0a52e21dd65f98f7cd106d996e97e1b3e709431e4bb80cd2e3599953fa95fe6
[root@zyl-server ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos 1.2 d0a52e21dd65 20 seconds ago 231MB
nginx latest 605c77e624dd 19 months ago 141MB
registry latest b8604a3fe854 21 months ago 26.2MB
hello-world latest feb5d9fea6a5 23 months ago 13.3kB
centos latest 5d0da3dc9764 23 months ago 231MB
registry.cn-hangzhou.aliyuncs.com/zhaohaibao/centos 7.9 5d0da3dc9764 23 months ago 231MB
[root@zyl-server ~]#
2、查看當(dāng)前私有倉(cāng)庫(kù)鏡像(空)
[root@zyl-server ~]# curl -XGET http://192.168.234.10:5000/v2/_catalog
{"repositories":[]}
[root@zyl-server ~]#
3、將主機(jī)的registry鏡像命名為符合倉(cāng)庫(kù)要求的格式。registry_url:port/ImageName:tag
docker tag centos:1.2 192.168.234.10:5000/centos:1.2
4、上傳centos鏡像到Registry倉(cāng)庫(kù)
docker push 192.168.234.10:5000/centos:1.2
push失敗:
[root@zyl-server ~]# docker push 192.168.234.10:5000/centos:1.2
The push refers to repository [192.168.234.10:5000/centos]
Get "https://192.168.234.10:5000/v2/": http: server gave HTTP response to HTTPS client
[root@zyl-server ~]#
解決:
這是因?yàn)槲覀儐?dòng)的registry服務(wù)不是安全可信賴的。這時(shí)需要修改客戶端docker的配置文件vi /etc/docker/daemon.json,
添加下面的內(nèi)容(insecure-registries服務(wù)地址):
{
""registry-mirrors": ["https://XXX.mirror.aliyuncs.com"],
"insecure-registries": ["192.168.234.10:5000"]
}
"registry-mirrors": ["https://XXX.mirror.aliyuncs.com"] 是阿里云代理的Registry Hub倉(cāng)庫(kù)的地址,可以加快國(guó)內(nèi)訪問Registry Hub倉(cāng)庫(kù)的速度。
修改好之后需要重啟Docker服務(wù)才能生效,
執(zhí)行命令:systemctl restart docker ,再push即可.
5、再次推送
[root@zyl-server ~]# docker push 192.168.234.10:5000/centos:1.2
The push refers to repository [192.168.234.10:5000/centos]
Get "http://192.168.234.10:5000/v2/": dial tcp 192.168.234.10:5000: connect: connection refused
[root@zyl-server ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@zyl-server ~]#
報(bào)錯(cuò):connect: connection refused
解決:docker ps 查看發(fā)現(xiàn)沒有運(yùn)行的鏡像實(shí)例,重新運(yùn)行 registry。
docker run -d -p 5000:5000 -v /zyl/myregistry/:/tmp/registry --privileged=true registry
### push
docker push 192.168.234.10:5000/centos:1.2
6、檢查–查看當(dāng)前私有倉(cāng)庫(kù)鏡像
[root@zyl-server ~]# curl -XGET http://192.168.234.10:5000/v2/_catalog
{"repositories":["centos"]}
[root@zyl-server ~]#
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-652903.html
至此,我們的Registry私有倉(cāng)庫(kù)搭建完成,如果在今后中要使用,可以使用命令:
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-652903.html
docker pull 192.168.234.10:5000/centos:1.2
??The End??點(diǎn)點(diǎn)關(guān)注,收藏不迷路??
|
到了這里,關(guān)于Docker基礎(chǔ)入門:鏡像、容器導(dǎo)入導(dǎo)出與私有倉(cāng)庫(kù)搭建的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!