Docker系列之三 映象倉庫

2021-09-11 08:09:11 字數 3940 閱讀 4193

[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...