在內(nèi)網(wǎng)環(huán)境中,我們期望能夠在本地共享鏡像。為了解決這一問題,Docker Registry成為了我們的救星。Docker Registry是一個用于存儲和管理Docker鏡像的開源工具。通過在本地部署Docker Registry,您可以輕松地構(gòu)建、存儲和分享自己的Docker鏡像。本文將詳細介紹如何使用Docker Compose快速部署Docker Registry,并開始輕松應對這一鏡像管理問題。此外,我們還將介紹如何將您的鏡像傳輸?shù)桨⒗镌迫萜麋R像服務,為您提供更廣泛的鏡像管理和分發(fā)選項。
第一步:創(chuàng)建docker-compose.yml文件
首先我們創(chuàng)建一個Registry的部署目錄 Registry,在目錄registry
下創(chuàng)建一個 docker-compose.yml 文件,內(nèi)容如下:
version: "3.8"
services:
registry:
privileged: true #這里把權(quán)限配置成true
image: registry #鏡像來源
restart: always #開機后自己啟動
container_name: registry #自定義服務名
ports: #暴露端口
- 5000:5000
volumes: #掛載目錄配置
- ./data:/var/lib/registry
web:
image: konradkleine/docker-registry-frontend:v2
restart: always
ports:
- 8035:80
environment:
- ENV_DOCKER_REGISTRY_HOST=192.168.10.106
- ENV_DOCKER_REGISTRY_PORT=5000
registry服務就是我們鏡像倉庫的服務,web服務會給我們提供一個可視化的web頁面,方便我們查看鏡像,web服務中配置的環(huán)境變量就是我們倉庫服務registry的ip和端口
第二步:啟動服務
在docker-compose.yml統(tǒng)計目錄下執(zhí)行如下命令啟動容器:
docker-compose up -d
查看容器啟動日志
docker-compose logs -f
如果不出意外的話我們的服務就啟動了
第三步:使用倉庫
配置 Docker 客戶端
為了能夠推送和拉取鏡像,我們需要在 Docker 客戶端(服務器)配置 Registry 地址。打開 Docker 配置文件(通常是 /etc/docker/daemon.json
并添加 Registry 地址:
{
"insecure-registries": ["http://192.168.10.106:5000"]
}
重啟docker,確保 Docker 客戶端重新加載配置,以使更改生效。
sudo systemctl restart docker
測試 Registry
查看本地鏡像:
docker images
示例:
xiuji@xiuji:~/docker/registry$ docker images | grep jenkins
xj/jenkins 1.0 a7115c9ef551 3 weeks ago 1.51GB
xiuji@xiuji:~/docker/registry$
找到要上傳的鏡像,然后,將該鏡像重新標記為本地 Registry 的地址:
docker tag a7115c9ef551 192.168.10.106:5000/xj/jenkins:1.0.0
示例:
xiuji@xiuji:~/docker/registry$
xiuji@xiuji:~/docker/registry$ docker tag a7115c9ef551 192.168.10.106:5000/xj/jenkins:1.0.0
xiuji@xiuji:~/docker/registry$
xiuji@xiuji:~/docker/registry$
xiuji@xiuji:~/docker/registry$
xiuji@xiuji:~/docker/registry$ docker images | grep jenkins
192.168.10.106:5000/xj/jenkins 1.0.0 a7115c9ef551 3 weeks ago 1.51GB
xj/jenkins 1.0 a7115c9ef551 3 weeks ago 1.51GB
xiuji@xiuji:~/docker/registry$
最后,推送標記的鏡像到本地 Registry:
docker push 192.168.10.106:5000/xj/jenkins:1.0.0
示例:
xiuji@xiuji:~/docker/registry$
xiuji@xiuji:~/docker/registry$ docker push 192.168.10.106:5000/xj/jenkins:1.0.0
The push refers to repository [192.168.10.106:5000/xj/jenkins]
5f70bf18a086: Mounted from xj/mdnice
a30b1d65deb1: Pushed
7746b0a769ee: Pushed
5d62eace5f20: Pushed
9c6b971806be: Pushed
f88a5e4ffedf: Pushed
083e56fe83eb: Pushed
cc1aa31be4c7: Pushed
e7542699c5f9: Pushed
7bda4b78c961: Pushed
32b6e276d5a8: Pushed
eabefec3772e: Pushed
e145a64deaba: Pushed
31dbd8e7ce5e: Pushed
ebb8d7205eaa: Pushed
cb23a9220de6: Pushed
734cd72d093f: Pushed
992e88d23f64: Pushed
2730a34737a7: Pushed
2cd46f43e9fc: Pushed
1c1312c0dc73: Pushed
3cb48b2a745d: Pushed
cd10e235b4bd: Pushed
92ebff64190b: Pushed
d8705911861f: Pushed
58fc268a6ace: Pushed
1a058d5342cc: Pushed
1.0.0: digest: sha256:53ce7a9be0e390799b1021e919b6cbadd11d277c6809fb813fd4a22ea34ac613 size: 5984
xiuji@xiuji:~/docker/registry$
推送之后我們就可以在web服務的頁面中看到了:
訪問web服務: http://192.168.10.106:8035/
推送到阿里云容器鏡像
如果我們想把鏡像推送到公網(wǎng),那么我們就可以使用阿里云容器鏡像,雖然個人容器鏡像托管服務是限額使用的,但額度對于我們個人使用的話已經(jīng)足夠了
鏡像服務地址: https://cr.console.aliyun.com/cn-hangzhou/instances
上傳操作阿里云倉庫有詳細的說明,我們此處簡單列舉下:
- 登錄阿里云Docker Registry
$ docker login --username=youname registry.cn-hangzhou.aliyuncs.com
用于登錄的用戶名為阿里云賬號全名,密碼為開通服務時設置的密碼。
您可以在訪問憑證頁面修改憑證密碼。
- 從Registry中拉取鏡像
$ docker pull registry.cn-hangzhou.aliyuncs.com/youname/jenkins:[鏡像版本號]
- 將鏡像推送到Registry
$ docker login --username=youname registry.cn-hangzhou.aliyuncs.com
$ docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/younamew/jenkins:[鏡像版本號]
$ docker push registry.cn-hangzhou.aliyuncs.com/youname/jenkins:[鏡像版本號]
推送之后也可以設置鏡像的權(quán)限
刪除tag
隨著我們在服務器上 tag的增多,為了方便服務器上鏡像的查看,我們也可以上傳之后刪除tag
docker image rm 192.168.10.106:5000/xj/jenkins:1.0.0
示例:
xiuji@xiuji:~/docker/registry$
xiuji@xiuji:~/docker/registry$
xiuji@xiuji:~/docker/registry$ docker images | grep jenkins
192.168.10.106:5000/xj/jenkins 1.0.0 a7115c9ef551 3 weeks ago 1.51GB
xj/jenkins 1.0 a7115c9ef551 3 weeks ago 1.51GB
xiuji@xiuji:~/docker/registry$
xiuji@xiuji:~/docker/registry$
xiuji@xiuji:~/docker/registry$
xiuji@xiuji:~/docker/registry$ docker image rm 192.168.10.106:5000/xj/jenkins:1.0.0
Untagged: 192.168.10.106:5000/xj/jenkins:1.0.0
Untagged: 192.168.10.106:5000/xj/jenkins@sha256:53ce7a9be0e390799b1021e919b6cbadd11d277c6809fb813fd4a22ea34ac613
xiuji@xiuji:~/docker/registry$
xiuji@xiuji:~/docker/registry$
xiuji@xiuji:~/docker/registry$ docker images | grep jenkins
xj/jenkins 1.0 a7115c9ef551 3 weeks ago 1.51GB
xiuji@xiuji:~/docker/registry$
xiuji@xiuji:~/docker/registry$
對于docker 鏡像操作不太熟悉的家人們也可以翻閱下我們之前的文章《深入了解Docker鏡像操作》
總結(jié)
通過使用 Docker Compose,我們可以輕松地在本地部署 Docker Registry,并開始使用自己的私有鏡像存儲。這為團隊協(xié)作和鏡像管理提供了更多的靈活性。希望這篇文章對您部署 Docker Registry 有所幫助!
每日閑談
今天是周末,透過窗外的晴朗天氣,決定吃過飯出門晃晃,進行一些鍛煉。在我們生活中,健康是最為重要的財富。尤其是在冬季,氣候相對干燥,這時候更應該多喝水,多出門走走,增加活動量。保持一個健康的身體才是最明智的選擇。與家人一同享受戶外活動,呼吸新鮮空氣,不僅有益于身體健康,也能在輕松愉悅的氛圍中增進家庭成員之間的感情。文章來源:http://www.zghlxwxcb.cn/news/detail-783416.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-783416.html
到了這里,關于使用 Docker Compose 部署 Docker Registry的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!