摘要:清除所有處于終止狀態的容器訪問倉庫倉庫是集中存放鏡像的地方。倉庫可以看成是一個具體的項目或目錄。是注冊服務器地址,是倉庫名。生成認證文件編輯修改編輯啟動測試私有倉庫功能登錄到私有倉庫嘗試推送拉取鏡像端口若被占用請嘗試用代理
docker save load 與 docker export import
利用ssh pv Linux管道 實現鏡像遷移(帶進度條)
docker save <鏡像名> | bzip2 | pv | ssh <用戶名>@<主機名> "cat |docker load"
docker load 與 docker import區別
容器快照文件將丟失所有的歷史數據和元數據信息(僅保存容器當時的快照狀態) 從容器快照文件導入時可以重新指定標簽等元數據信息。 鏡像存儲文件則將保存完整記錄, 體積也要更大。清除所有處于終止狀態的容器
docker container prune訪問倉庫
倉庫(Repository)是集中存放鏡像的地方。
一個容易混淆的概念是注冊服務器(Registry)。
Registry是管理倉庫的具體服務器,每個Registry可以有多個Repository,每個Repository下面多個image。
倉庫可以看成是一個具體的項目或目錄。
d1.dockerpool.com/ubuntu, d1.dockerpool.com是注冊服務器地址,ubuntu是倉庫名。
Docker Hub需要先注冊一個Docker賬號
命令行登陸 退出
docker login docker logout
查找 拉取鏡像
docker search docker pull
推送鏡像
用戶在登陸后 docker push 將自己的鏡像推送到Docker Hub
自動創建
創建并登陸Docker Hub 以及目標網站
在目標網站中連接賬戶到Docker Hub
在Docker Hub中配置一個自動創建
選取一個目標網站中的項目(需要包含Dockerfile)和分支
指定Dockerfile位置, 并提交創建
私有倉庫
容器運行
docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry registry
在私有倉庫上傳、搜索、下載鏡像
docker tag 標記一個鏡像,并推送到倉庫。比如私有倉庫地址為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 上傳標記的鏡像
docker push 127.0.0.1:5000/docker.io/mysql
curl 查看倉庫中的鏡像
curl 127.0.0.1:5000/v2/_catalog
從私有倉庫下載
需要先刪除已有鏡像 docker image rm 127.0.0.1:5000/docker.io/mysql:5 docker pull 127.0.0.1:5000/docker.io/mysql:5
注意事項
Docker默認不允許非HTTPS方式推送鏡像,可以通過docker配置選項取消這個限制
對于upstar系統(Ubuntu 14.04 Debian7 Wheezy)
編輯/etc/default/docker,在其中的DOCKER_OPTS增加內容 DOCKER_OPTS="--registry-mirror=https://registry.docker-cn.com --insecure-registries=10.9.2.100:5000" sudo service docker restart
對于systemd系統(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私有倉庫高級配置
使用Docker Compose構建,搭建一個擁有權限認證、TLS的私有倉庫
使用openssl自行簽發docker.domain.com的站點的SSL證書
step1 創建 CA 密鑰
openssl genrsa -out "root-ca.key" 4096
step2 利用私鑰創建 CA 根證書請求文件
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參數 /C 表示國家 如CN /ST 表示省 /L 表示城市或地區 /O 表示組織名 /CN 通用名稱
step3 配置 CA 根證書,新建root-ca.cnf
[root_ca] basicConstraints = critical, CA:TRUE, pathlen:1 keyUsage = critical, nonRepudiation, cRLSign, keyCertSign subjectKeyIdentifier=hash
step4 簽發根證書
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 生成站點 SSL 私鑰
openssl genrsa -out "docker.domain.com.key" 4096
step6 使用私鑰生成證書請求文件
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 配置證書,新建 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 簽署站點 SSL 證書
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
經過以上步驟,就擁有了docker.domain.com的網站SSL私鑰 docker.domain.com.key 和 SSL證書 docker.domain.com.crt 新建ssl文件夾將 docker.domain.com.key docker.domain.com.crt 移入,其他刪除
配置私有倉庫
私有倉庫默認的配置文件位于 /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 認證文件
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
啟動
docker-compose up -d
測試私有倉庫功能
登錄到私有倉庫
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端口若被占用,請嘗試用Nginx代理
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/27423.html
摘要:原文地址零基礎入門指南五倉庫是集中存放鏡像的地方。最常使用的公開服務是官方的,這也是默認的,并擁有大量的高質量的官方鏡像。登錄可以通過執行命令交互式的輸入用戶名及密碼來完成在命令行界面登錄。使用將這個鏡像標記為。 原文地址:Docker零基礎入門指南(五) 倉庫( Repository )是集中存放鏡像的地方。一個容易混淆的概念是注冊服務器( Registry )。實際上注冊服務器是管...
摘要:安裝號稱是世界上最流行的私服管理軟件可以搭建幾乎目前所有常見的倉庫如等更是增加了對倉庫的支持應該是搭建私服的唯一選擇有兩個版本和其中版本是免費專業版需要收費對于日常的倉庫管理已經足夠用支持二進制文件安裝和安裝這里選擇安裝簡單方便運行以下命令 安裝 Nexus號稱是世界上最流行的私服管理軟件(The worlds most popular repository),可以搭建幾乎目前所有常見...
摘要:正好我們在使用作為的倉庫,同時提供了等諸多類型的倉庫功能。值得一提的是,我們可以使用這個倉庫從和下載鏡像,但是我們不能通過這個倉庫推送鏡像到遠程倉庫。 背景 我們一直使用 harbor 作為docker的鏡像倉庫,但Harbor只能作為私有倉庫,當需要Docker Hub 或 Google Cloud Containers 上的鏡像時,我們只能自己手動pull,重新打tag,再push...
摘要:前端開發過程中,少不了自己封裝一些通用的包,但又不想放在公共的平臺,所以搭建一個私有的倉庫是很有必要的。在這里簡單介紹如何使用在環境下的配置。輕量級私有代理注冊表。加上,那就真的無敵方便了,搭建一個私有倉庫輕輕松松幾分鐘搞定。前端開發過程中,少不了自己封裝一些通用的包,但又不想放在公共的平臺,所以搭建一個npm私有的倉庫是很有必要的。 在這里簡單介紹如何使用 verdoccio 在docke...
摘要:本文介紹如何使用搭建私有倉庫,以及使用時如何映射到本地目錄,方便簡單對倉庫進行各種操作。其次,創建目錄,并添加的配置文件。當需要把某個項目發布到私有庫時,直接。使用包名,即可安裝私有包了。本文介紹如何使用 verdaccio 搭建私有npm倉庫,以及使用 docker 時如何映射到本地目錄,方便簡單對倉庫進行各種操作。系統環境是 Linux。 verdaccio verdacci...
閱讀 2327·2021-09-26 10:21
閱讀 2805·2021-09-08 09:36
閱讀 3070·2019-08-30 15:56
閱讀 963·2019-08-30 12:57
閱讀 934·2019-08-26 10:39
閱讀 3565·2019-08-23 18:11
閱讀 3086·2019-08-23 17:12
閱讀 1089·2019-08-23 12:18