[root@centos181001 ~]# cat /etc/centos-release
centos linux release 7.6.1810 (core)
[root@centos181001 ~]# docker -v
docker version 18.09.1, build 4c52b90
儲存和分發映象的最直接方法就是使用 docker hub。
docker hub 是 docker 公司維護的公共 registry。使用者可以將自己的映象儲存到 docker hub 免費的 repository 中。如果不希望別人訪問自己的映象,也可以購買私有 repository或者建立自己的repository
除了 docker hub,quay.io 是另乙個公共 registry,提供與 docker hub 類似的服務。
1.在docker hub 上註冊乙個賬號。
2.在docker宿主機上登入
docker login -u "1327133225" -p "xiaoliu"
## 命令幫助
[root@centos181001 ~]# docker login --help
usage: docker login [options] [server]
## 登入到docker registry
log in to a docker registry
options:
-p, --password string password
--password-stdin take the password from stdin
-u, --username string username
3.上傳映象到docker hub## 1.先需要將上傳的映象命名
## 將本地已有的``nginx:latest``命令為``1327133225/nginx:latest``
## 新映象格式為``使用者名稱/映象名:映象標籤``
docker image tag nginx:latest 1327133225/nginx:latest
## 2.上傳
docker push 1327133225/nginx
## 3.這個時候可以登入docker hub檢視已上傳映象
u/1327133225
docker pull 1327133225/nginx
## 注意:從docker hub刪除已上傳映象只能登入到docker hub網頁進行操作
按照以下搭建的本地私有倉庫,會允許所有人訪問本倉庫。
docker pull registry:2.7.1
2.啟動registry容器
預設情況下,會將倉庫存放於容器內的/tmp/registry目錄下,這樣如果容器被刪除,則存放於容器中的映象也會丟失,所以我們掛載本地/home/registry
用於存放上傳的image
docker run -d \
--restart always \
--name registry \
-p 5000:5000 \
-v /home/registry:/var/lib/registry \
registry:2.7.1
3.建立並編輯配置檔案,允許不安全的連線
官方推薦tls認證,如果是外網使用的話建議使用tls認證。
官網介紹:
cat eofsystemctl restart docker
4.將映象命名
repository 的完整格式為:[registry-host]:[port]/[username]/***
只有 docker hub 上的映象可以省略 [registry-host]:[port]
這裡的username
可以省略
docker image tag nginx:latest 11.11.11.61:5000/1327133225/nginx:latest
docker image tag nginx:latest 11.11.11.61:5000/nginx:latest
5.上傳映象到私有倉庫docker push 11.11.11.61:5000/1327133225/nginx:latest
docker push 11.11.11.61:5000/nginx:latest
## 檢視倉庫都上傳了那些映象
curl -x get
cat eofsystemctl restart docker
docker pull 11.11.11.61:5000/123/nginx:latest
官網介紹:
這裡我們採用docker原生支援的基本驗證來實現基本的賬號密碼驗證。
1.建立存放密碼檔案的目錄
mkdir auth
2.啟動乙個臨時容器,用來生成密碼檔案docker run \
--name registry \
--entrypoint htpasswd \
registry:2.7.1 -bbn admin xiaoliu > auth/htpasswd
3.刪除剛才啟動的臨時容器docker rm -f registry
4.啟動私有倉庫docker run -d \
-p 5000:5000 \
--restart=always \
--name registry \
-v `pwd`/auth:/auth \
registry:2.7.1
5.這個時候如果直接推送和拉取本地倉庫映象會提示錯誤,需要登入後使用docker login
docker pull registry:2.7.1
2.生成自簽名證書mkdir -p certs
openssl req \
-newkey rsa:4096 -nodes -sha256 -keyout certs/domain.key \
-x509 -days 365 -out certs/domain.crt
3.啟動docker run -d \
registry:2.7.1
4.測試
將domain.crt檔案複製到 /etc/docker/certs.d/myregistrydomain.com:5000/ca.crt每個docker主機上。您不需要重新啟動docker。
Docker之三 Dockerfile映象
一 自動部署應用 1.自建docker web專案,存入 usr image first dockerfile 構建應用映象 最後乙個.是當前目錄路徑 dockerfile內容 設定基準映象 from tomcat latest maintainer helq3.com 切換工作目錄,不存在則建立 ...
docker學習整理三 映象 倉庫
上一文中我們之間是run啟動了乙個容器,而實際上,docker自己後台還幹了乙個操作,就是把映象從遠端拉下來。docker images無出意外,此時會列舉出之前run的映象。那麼如何區分同乙個映象,在倉庫中的不同版本呢?docker提供了tag來標記,也就是在映象後面標記具體映象,如mysql 5...
Docker映象倉庫 Harbor
docker run net host name cg registry d p 5000 5000 v home docker mnt registry var lib registry registry 2 1 安裝pip wget python get pip.py 2 安裝docker co...