摘要:清除所有處于終止?fàn)顟B(tài)的容器訪問(wèn)倉(cāng)庫(kù)倉(cāng)庫(kù)是集中存放鏡像的地方。倉(cāng)庫(kù)可以看成是一個(gè)具體的項(xiàng)目或目錄。是注冊(cè)服務(wù)器地址,是倉(cāng)庫(kù)名。生成認(rèn)證文件編輯修改編輯啟動(dòng)測(cè)試私有倉(cāng)庫(kù)功能登錄到私有倉(cāng)庫(kù)嘗試推送拉取鏡像端口若被占用請(qǐng)嘗試用代理
docker save load 與 docker export import
利用ssh pv Linux管道 實(shí)現(xiàn)鏡像遷移(帶進(jìn)度條)
docker save <鏡像名> | bzip2 | pv | ssh <用戶(hù)名>@<主機(jī)名> "cat |docker load"
docker load 與 docker import區(qū)別
容器快照文件將丟失所有的歷史數(shù)據(jù)和元數(shù)據(jù)信息(僅保存容器當(dāng)時(shí)的快照狀態(tài)) 從容器快照文件導(dǎo)入時(shí)可以重新指定標(biāo)簽等元數(shù)據(jù)信息。 鏡像存儲(chǔ)文件則將保存完整記錄, 體積也要更大。清除所有處于終止?fàn)顟B(tài)的容器
docker container prune訪問(wèn)倉(cāng)庫(kù)
倉(cāng)庫(kù)(Repository)是集中存放鏡像的地方。
一個(gè)容易混淆的概念是注冊(cè)服務(wù)器(Registry)。
Registry是管理倉(cāng)庫(kù)的具體服務(wù)器,每個(gè)Registry可以有多個(gè)Repository,每個(gè)Repository下面多個(gè)image。
倉(cāng)庫(kù)可以看成是一個(gè)具體的項(xiàng)目或目錄。
d1.dockerpool.com/ubuntu, d1.dockerpool.com是注冊(cè)服務(wù)器地址,ubuntu是倉(cāng)庫(kù)名。
Docker Hub需要先注冊(cè)一個(gè)Docker賬號(hào)
命令行登陸 退出
docker login docker logout
查找 拉取鏡像
docker search docker pull
推送鏡像
用戶(hù)在登陸后 docker push 將自己的鏡像推送到Docker Hub
自動(dòng)創(chuàng)建
創(chuàng)建并登陸Docker Hub 以及目標(biāo)網(wǎng)站
在目標(biāo)網(wǎng)站中連接賬戶(hù)到Docker Hub
在Docker Hub中配置一個(gè)自動(dòng)創(chuàng)建
選取一個(gè)目標(biāo)網(wǎng)站中的項(xiàng)目(需要包含Dockerfile)和分支
指定Dockerfile位置, 并提交創(chuàng)建
私有倉(cāng)庫(kù)
容器運(yùn)行
docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry registry
在私有倉(cāng)庫(kù)上傳、搜索、下載鏡像
docker tag 標(biāo)記一個(gè)鏡像,并推送到倉(cāng)庫(kù)。比如私有倉(cāng)庫(kù)地址為127.0.0.1:5000
格式: docker tag IMAGE[:TAG] [REGISTRY_HOST][:REGISTRY_PORT/]REPOSITORY[:TAG]
docker tag docker.io/mysql:5 127.0.0.1:5000/docker.io/mysql:5
docker push 上傳標(biāo)記的鏡像
docker push 127.0.0.1:5000/docker.io/mysql
curl 查看倉(cāng)庫(kù)中的鏡像
curl 127.0.0.1:5000/v2/_catalog
從私有倉(cāng)庫(kù)下載
需要先刪除已有鏡像 docker image rm 127.0.0.1:5000/docker.io/mysql:5 docker pull 127.0.0.1:5000/docker.io/mysql:5
注意事項(xiàng)
Docker默認(rèn)不允許非HTTPS方式推送鏡像,可以通過(guò)docker配置選項(xiàng)取消這個(gè)限制
對(duì)于upstar系統(tǒng)(Ubuntu 14.04 Debian7 Wheezy)
編輯/etc/default/docker,在其中的DOCKER_OPTS增加內(nèi)容 DOCKER_OPTS="--registry-mirror=https://registry.docker-cn.com --insecure-registries=10.9.2.100:5000" sudo service docker restart
對(duì)于systemd系統(tǒng)(Ubuntu16.04+ Debian8+ centos7)
編輯/etc/docker/daemon.json (不存在則新建) { "registry-mirror": [ "https://registry.docker-cn.com" ], "insecure-registries": [ "122.112.207.157:5000" ] } systemctl restart docker私有倉(cāng)庫(kù)高級(jí)配置
使用Docker Compose構(gòu)建,搭建一個(gè)擁有權(quán)限認(rèn)證、TLS的私有倉(cāng)庫(kù)
使用openssl自行簽發(fā)docker.domain.com的站點(diǎn)的SSL證書(shū)
step1 創(chuàng)建 CA 密鑰
openssl genrsa -out "root-ca.key" 4096
step2 利用私鑰創(chuàng)建 CA 根證書(shū)請(qǐng)求文件
openssl req -new -key "root-ca.key" -out "root-ca.csr" -sha256 -subj "/C=CN/ST=Zhejiang/L=Hangzhou/O=eichong/CN=eichong Docker Registry CA"
-subj參數(shù) /C 表示國(guó)家 如CN /ST 表示省 /L 表示城市或地區(qū) /O 表示組織名 /CN 通用名稱(chēng)
step3 配置 CA 根證書(shū),新建root-ca.cnf
[root_ca] basicConstraints = critical, CA:TRUE, pathlen:1 keyUsage = critical, nonRepudiation, cRLSign, keyCertSign subjectKeyIdentifier=hash
step4 簽發(fā)根證書(shū)
openssl x509 -req -days 3650 -in "root-ca.csr" -signkey "root-ca.key" -sha256 -out "root-ca.crt" -extfile "root-ca.cnf" -extensions root_ca
step5 生成站點(diǎn) SSL 私鑰
openssl genrsa -out "docker.domain.com.key" 4096
step6 使用私鑰生成證書(shū)請(qǐng)求文件
openssl req -new -key "docker.domain.com.key" -out "site.csr" -sha256 -subj "/C=CN/ST=Zhejiang/L=Hangzhou/O=eichong/CN=docker.domain.com"
step7 配置證書(shū),新建 site.cnf 文件
[server] authorityKeyIdentifier=keyid, issuer basicConstraints = critical, CA:FALSE extendedKeyUsage=serverAuth keyUsage = critical, digitalSignature, keyEncipherment subjectAltName = DNS:docker.domain.com, IP:127.0.0.1 subjectKeyIdentifier=hash
step8 簽署站點(diǎn) SSL 證書(shū)
openssl x509 -req -days 750 -in "site.csr" -sha256 -CA "root-ca.crt" -CAkey "root-ca.key" -CAcreateserial -out "docker.domain.com.crt" -extfile "site.cnf" -extensions server
經(jīng)過(guò)以上步驟,就擁有了docker.domain.com的網(wǎng)站SSL私鑰 docker.domain.com.key 和 SSL證書(shū) docker.domain.com.crt 新建ssl文件夾將 docker.domain.com.key docker.domain.com.crt 移入,其他刪除
配置私有倉(cāng)庫(kù)
私有倉(cāng)庫(kù)默認(rèn)的配置文件位于 /etc/docker/registry/config.yml ,我們先在本地編輯 config.yml ,之后掛載到容器中。
version: 0.1 log: accesslog: disabled: true level: debug formatter: text fields: service: registry environment: staging storage: delete: enabled: true cache: blobdescriptor: inmemory filesystem: rootdirectory: /var/lib/registry auth: htpasswd: realm: basic-realm path: /etc/docker/registry/auth/nginx.htpasswd http: addr: :443 host: https://docker.domain.com headers: X-Content-Type-Options: [nosniff] http2: disabled: false tls: certificate: /etc/docker/registry/ssl/docker.domain.com.crt key: /etc/docker/registry/ssl/docker.domain.com.key health: storagedriver: enabled: true interval: 10s threshold: 3
生成 http 認(rèn)證文件
mkdir auth docker run --rm --entrypoint htpasswd registry -Bbn username password > auth/nginx.htpasswd
編輯 docker-compose.yml
version: "3" services: registry: image: registry ports: - "443:443" volumes: - ./:/etc/docker/registry - registry-data:/var/lib/registry volumes: registry-data:
修改 hosts
編輯 /etc/hosts
docker.domain.com 127.0.0.1
啟動(dòng)
docker-compose up -d
測(cè)試私有倉(cāng)庫(kù)功能
登錄到私有倉(cāng)庫(kù)
docker login docker.domain.com
嘗試推送、拉取鏡像
docker pull ubuntu:17.10 docker tag ubuntu:17.10 docker.domain.com/username/ubuntu:17.10 docker push docker.domain.com/username/ubuntu:17.10 docker image rm docker.domain.com/username/ubuntu:17.10 docker pull docker.domain.com/username/ubuntu:17.10
443端口若被占用,請(qǐng)嘗試用Nginx代理
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/27423.html
摘要:原文地址零基礎(chǔ)入門(mén)指南五倉(cāng)庫(kù)是集中存放鏡像的地方。最常使用的公開(kāi)服務(wù)是官方的,這也是默認(rèn)的,并擁有大量的高質(zhì)量的官方鏡像。登錄可以通過(guò)執(zhí)行命令交互式的輸入用戶(hù)名及密碼來(lái)完成在命令行界面登錄。使用將這個(gè)鏡像標(biāo)記為。 原文地址:Docker零基礎(chǔ)入門(mén)指南(五) 倉(cāng)庫(kù)( Repository )是集中存放鏡像的地方。一個(gè)容易混淆的概念是注冊(cè)服務(wù)器( Registry )。實(shí)際上注冊(cè)服務(wù)器是管...
摘要:安裝號(hào)稱(chēng)是世界上最流行的私服管理軟件可以搭建幾乎目前所有常見(jiàn)的倉(cāng)庫(kù)如等更是增加了對(duì)倉(cāng)庫(kù)的支持應(yīng)該是搭建私服的唯一選擇有兩個(gè)版本和其中版本是免費(fèi)專(zhuān)業(yè)版需要收費(fèi)對(duì)于日常的倉(cāng)庫(kù)管理已經(jīng)足夠用支持二進(jìn)制文件安裝和安裝這里選擇安裝簡(jiǎn)單方便運(yùn)行以下命令 安裝 Nexus號(hào)稱(chēng)是世界上最流行的私服管理軟件(The worlds most popular repository),可以搭建幾乎目前所有常見(jiàn)...
摘要:正好我們?cè)谑褂米鳛榈膫}(cāng)庫(kù),同時(shí)提供了等諸多類(lèi)型的倉(cāng)庫(kù)功能。值得一提的是,我們可以使用這個(gè)倉(cāng)庫(kù)從和下載鏡像,但是我們不能通過(guò)這個(gè)倉(cāng)庫(kù)推送鏡像到遠(yuǎn)程倉(cāng)庫(kù)。 背景 我們一直使用 harbor 作為docker的鏡像倉(cāng)庫(kù),但Harbor只能作為私有倉(cāng)庫(kù),當(dāng)需要Docker Hub 或 Google Cloud Containers 上的鏡像時(shí),我們只能自己手動(dòng)pull,重新打tag,再push...
摘要:前端開(kāi)發(fā)過(guò)程中,少不了自己封裝一些通用的包,但又不想放在公共的平臺(tái),所以搭建一個(gè)私有的倉(cāng)庫(kù)是很有必要的。在這里簡(jiǎn)單介紹如何使用在環(huán)境下的配置。輕量級(jí)私有代理注冊(cè)表。加上,那就真的無(wú)敵方便了,搭建一個(gè)私有倉(cāng)庫(kù)輕輕松松幾分鐘搞定。前端開(kāi)發(fā)過(guò)程中,少不了自己封裝一些通用的包,但又不想放在公共的平臺(tái),所以搭建一個(gè)npm私有的倉(cāng)庫(kù)是很有必要的。 在這里簡(jiǎn)單介紹如何使用 verdoccio 在docke...
摘要:本文介紹如何使用搭建私有倉(cāng)庫(kù),以及使用時(shí)如何映射到本地目錄,方便簡(jiǎn)單對(duì)倉(cāng)庫(kù)進(jìn)行各種操作。其次,創(chuàng)建目錄,并添加的配置文件。當(dāng)需要把某個(gè)項(xiàng)目發(fā)布到私有庫(kù)時(shí),直接。使用包名,即可安裝私有包了。本文介紹如何使用 verdaccio 搭建私有npm倉(cāng)庫(kù),以及使用 docker 時(shí)如何映射到本地目錄,方便簡(jiǎn)單對(duì)倉(cāng)庫(kù)進(jìn)行各種操作。系統(tǒng)環(huán)境是 Linux。 verdaccio verdacci...
閱讀 2312·2021-09-26 10:21
閱讀 2785·2021-09-08 09:36
閱讀 3065·2019-08-30 15:56
閱讀 954·2019-08-30 12:57
閱讀 916·2019-08-26 10:39
閱讀 3554·2019-08-23 18:11
閱讀 3077·2019-08-23 17:12
閱讀 1070·2019-08-23 12:18