vocus logo

方格子 vocus

建立私有 Docker Registry

更新 發佈閱讀 10 分鐘
vocus|新世代的創作平台

前言

該如何自架 docker registry 呢? docker registry 可以幫助我們做什麼事情呢? docker registry 是可以將我們打包好的 docker image,放置到 docker registry 上面,在我們開始要佈署服務時,從 docker registry 拉取我們打包好的 image 進行佈署,也就是說 docker registry 是我們存放 images 的倉庫,今天我們將教大家如何自架 docker registry,建造我們的私有倉庫。

準備主機

準備一台主機,先在本機安裝 docker engine 和 docker compose,接著安裝 apache2-utils 和 mkcert,我們要使用 apache2-utils 來控管伺服器內部存取身分,Docker Registry 支援帳密登入,前提要啟用 TLS HTTPS 連線,並使用 htpasswd 工具設定雜湊密碼檔,且安裝 mkcert 建立 TLS 憑證,以下安裝指令

sudo apt-get install apache2-utils mkcert

建立 /var/registry/certs 路徑,並切換到此路徑

sudo mkdir -p /var/registry/certs

cd /var/registry/certs

接著在/var/registry/certs 路徑,建立 TSL 憑證

sudo mkcert -install

|_ The local CA is already installed in the system trust store! 👍

sudo mkcert localhost

|_ Created a new certificate valid for the following names 📜

|_ - "localhost"

|_

|_ The certificate is at "./localhost.pem" and the key at "./localhost-key.pem"

|_

|_ It will expire on 5 January 2026 🗓

ls *.pem

|_ localhost-key.pem localhost.pem

建立 /var/registry/auth 路徑,並切換此路徑

sudo mkdir -p /var/registry/auth

cd /var/registry/auth

接著在 /var/registry/auth 路徑,建立帳號密碼

sudo htpasswd -Bbn user 123456 | sudo tee ./htpasswd > /dev/null

ls -l htpasswd

|_ -rw-r--r-- 1 root root 67 Oct 5 02:47 htpasswd

cat htpasswd

|_ user:$2y$05$g/sNIT/FM4rWtEIDvjTLEuuj3wGWAwxzgQgcVRK0vC/6KVr6uRNtu

準備 Docker Compose 安裝 registry 以及 docker registry browser 這兩個鏡像

version: "3"
services:
registry:
container_name: registry
restart: always
image: registry:2
ports:
- 5000:5000
environment:
REGISTRY_HTTP_TLS_CERTIFICATE: /certs/localhost.pem
REGISTRY_HTTP_TLS_KEY: /certs/localhost-key.pem
REGISTRY_AUTH: htpasswd
REGISTRY_AUTH_HTPASSWD_PATH: /auth/htpasswd
REGISTRY_AUTH_HTPASSWD_REALM: Registry Realm
REGISTRY_STORAGE_DELETE_ENABLED: true
volumes:
- /var/registry/data:/var/lib/registry
- /var/registry/certs:/certs
- /var/registry/auth:/auth
docker_registry_browser:
container_name: docker_registry_browser
restart: always
image: klausmeyer/docker-registry-browser
ports:
- 8080:8080
environment:
DOCKER_REGISTRY_URL: https://192.168.18.35:5000
NO_SSL_VERIFICATION: true
TOKEN_AUTH_USER: user
TOKEN_AUTH_PASSWORD: 123456
ENABLE_DELETE_IMAGES: true
volumes:
- /var/registry/certs:/certs

registry 鏡像

registry 是 docker 推出的鏡像,可以來建造我們的私有倉庫,快速提升開發效率,減少伺服器資源負擔

registry 的 environment 設定

REGISTRY_HTTP_TLS_CERTIFICATE: 取得剛才使用 mkcert 的 localhost.pem 檔案路徑

REGISTRY_HTTP_TLS_KEY: 取得剛才使用 mkcert 的 localhost-key.pem 檔案路徑

REGISTRY_AUTH: 設定驗證 http 環境變數

REGISTRY_AUTH_HTPASSWD_PATH: 設定驗證 http 檔案路徑

REGISTRY_AUTH_HTPASSWD_REALM: 設定驗證網域名稱

REGISTRY_STORAGE_DELETE_ENABLED: 啟用 registry 倉庫可被刪除

docker registry browser 鏡像

docker registry browser 是我個人推薦的一個鏡像,可以用來查看 docker registry 裡面有那些鏡像,並且提供刪除鏡像功能

docker registry browser 的 environment 設定

DOCKER_REGISTRY_URL: 設定 docker registry 位置

NO_SSL_VERIFICATION: 設定是否啟用 SSL 驗證

TOKEN_AUTH_USER: 設定 docker registry 登入使用者名稱

TOKEN_AUTH_PASSWORD: 設定 docker registry 登入密碼

ENABLE_DELETE_IMAGES: 設定是否啟用鏡像刪除按鈕

檢查 docker registry 是否運作正常

當安裝完 docker registry 後,在瀏覽器輸入我們鏡像倉庫網址: https://{自己的 ip}:{自己設定的 port}/v2,然後會要求輸入帳號密碼,輸入剛才我們設定的帳號密碼

vocus|新世代的創作平台

登入完成後會進入一個空物件話面代表成功

vocus|新世代的創作平台

再來輸入 https://{自己的 ip}:{自己設定的 port}/v2/_catalog,這可以看自己有上傳那些鏡像,目前當然是沒有

vocus|新世代的創作平台

檢查 docker registry browser 是否運作正常

安裝完 docker registry browser 輸入 http://{自己 ip}:{自己設定的 port},來檢查 docker registry browser 是否正常,然後會要求輸入帳號密碼,輸入剛才我們設定的帳號密碼

vocus|新世代的創作平台

登入完成後會進入一個 docker registry browser 畫面,會更清楚裡面有哪些 image,現在是還沒有任何 image 的狀態

vocus|新世代的創作平台

實際操作上傳 docker registry 倉庫

在所有服務建置完成後,我們來實際上傳 image 套我們的倉庫,首先先抓取 nginx 的 alpine 版本

docker pull nginx:alpine

接著我們對這個 image 給一個新的 tag image

docker tag 192.168.18.35:5000/nginx:alpine

接著先登入我們的 docker registry,輸入以下指令後,會要求我們輸入帳號密碼,也就是先前我們設定的帳號密碼

docker login 192.168.18.35:5000

登入成功後,再來上傳我們的 image

docker push 192.168.18.35:5000/nginx:alpine

如果上傳出現以下訊息

The push refers to repository [192.168.18.35:5000/nginx]

Get "https://192.168.18.35:5000/v2/": tls: failed to verify certificate: x509: cannot validate certificate for 192.168.44.136 because it doesn't contain any IP SANs

如果是 linux 在本機 /etc/docker/ 底下建立 daemon.json 檔案,建立以下內容

{

"group": "dockerroot",

"insecure-registries": [

"192.168.44.136:5000"

],

"live-restore": true

}

如果是 windows 直接在 docker desktop 新增相同內容

vocus|新世代的創作平台

最後再輸入一次剛才的 docker push 即可上傳成功,然後在瀏覽器打開 docker registry browser 即可看到 nginx alpine 版本

vocus|新世代的創作平台


留言
avatar-img
Tim Bai的沙龍
11會員
49內容數
d3.js 圖形
Tim Bai的沙龍的其他內容
2024/05/11
前端 為了實驗我們上傳的 Docker Image 有沒有問題,我們先在學一個刪除本地 Docker Image,刪除 Docker Image 要使用 docker rmi <image> 這個語法,現在開始刪除本地 Docker Image 輸入以下指令 docker rmi timmmmm
Thumbnail
2024/05/11
前端 為了實驗我們上傳的 Docker Image 有沒有問題,我們先在學一個刪除本地 Docker Image,刪除 Docker Image 要使用 docker rmi <image> 這個語法,現在開始刪除本地 Docker Image 輸入以下指令 docker rmi timmmmm
Thumbnail
2024/02/18
前言 大家好上次我們教了如何建立自己的 Docker Image,今天我們要來教怎麼把自己做好的 Docker Image 上傳到 Docker Hub,如果以後自己在公司有搭建 Docker Registry,也可以用同樣方式上傳到公司的 Docker Registry 私有倉庫 登入 Doc
Thumbnail
2024/02/18
前言 大家好上次我們教了如何建立自己的 Docker Image,今天我們要來教怎麼把自己做好的 Docker Image 上傳到 Docker Hub,如果以後自己在公司有搭建 Docker Registry,也可以用同樣方式上傳到公司的 Docker Registry 私有倉庫 登入 Doc
Thumbnail
2024/01/28
前言 大家好上次我們教了如何下載 Docker Image 使用,今天我們要教如何產出自己的 Image,這次會使用一個 Dockerfile 範例,自行打包 Docker Image,初步練習使用 Docker 指令 下載 Dockerfile 教學檔案 在這裡我已經幫忙寫好一個 Docke
Thumbnail
2024/01/28
前言 大家好上次我們教了如何下載 Docker Image 使用,今天我們要教如何產出自己的 Image,這次會使用一個 Dockerfile 範例,自行打包 Docker Image,初步練習使用 Docker 指令 下載 Dockerfile 教學檔案 在這裡我已經幫忙寫好一個 Docke
Thumbnail
看更多
你可能也想看
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
前言 上次我們初步體驗 Docker 快速佈署能力,今天我們要來講解 Dockerfile、Docker Image 與 Docker Container 這些常見的名詞,我們來了解在我們佈署的時候做哪些事情 Docker 佈署流程 首先看到如下圖上半部,在我們一個完整的佈署流程,我們會先將我
Thumbnail
前言 上次我們初步體驗 Docker 快速佈署能力,今天我們要來講解 Dockerfile、Docker Image 與 Docker Container 這些常見的名詞,我們來了解在我們佈署的時候做哪些事情 Docker 佈署流程 首先看到如下圖上半部,在我們一個完整的佈署流程,我們會先將我
Thumbnail
前言 上次講到 Dockerfile、DockerImage、Docker Container 他們之間的關係,今天我們要來熟悉 Docker Image 如何使用,教你如何抓取雲端上的 Docker Image, Docker Image 下載來源 當我們今天要要使用 Docker Imag
Thumbnail
前言 上次講到 Dockerfile、DockerImage、Docker Container 他們之間的關係,今天我們要來熟悉 Docker Image 如何使用,教你如何抓取雲端上的 Docker Image, Docker Image 下載來源 當我們今天要要使用 Docker Imag
Thumbnail
前言 上次我們講到 Docker 的功用與好處,今天我們要在講解,如何安裝 Docker 這個容器,讓我們在之後的教學應用更好的實作與練習,現在讓我們開始吧 Docker Engine 與 Docker Desktop 首先在講解怎麼安裝 Docker 時,我們先講解 Docker Engin
Thumbnail
前言 上次我們講到 Docker 的功用與好處,今天我們要在講解,如何安裝 Docker 這個容器,讓我們在之後的教學應用更好的實作與練習,現在讓我們開始吧 Docker Engine 與 Docker Desktop 首先在講解怎麼安裝 Docker 時,我們先講解 Docker Engin
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
獲取Image docker pull 查看Image docker images 可以查看REPOSITORY、TAG、IMAGE ID、CREATED與SIZE。 創建Image docker build [OPTIONS] PATH | URL | - 上傳Imag
Thumbnail
獲取Image docker pull 查看Image docker images 可以查看REPOSITORY、TAG、IMAGE ID、CREATED與SIZE。 創建Image docker build [OPTIONS] PATH | URL | - 上傳Imag
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
前言 大家好在先前我們講了什麼是 Docker,Docker 好處有什麼以及怎麼安裝 Docker,今天我們要來開始初體驗 Docker 容器,使用後您會發現 Docker 非常的方便快速 Docker Hub 介紹 首先在開始學怎麼抓取 Docker Image 之前,我們要先來介紹 Doc
Thumbnail
前言 大家好在先前我們講了什麼是 Docker,Docker 好處有什麼以及怎麼安裝 Docker,今天我們要來開始初體驗 Docker 容器,使用後您會發現 Docker 非常的方便快速 Docker Hub 介紹 首先在開始學怎麼抓取 Docker Image 之前,我們要先來介紹 Doc
Thumbnail
前端 為了實驗我們上傳的 Docker Image 有沒有問題,我們先在學一個刪除本地 Docker Image,刪除 Docker Image 要使用 docker rmi <image> 這個語法,現在開始刪除本地 Docker Image 輸入以下指令 docker rmi timmmmm
Thumbnail
前端 為了實驗我們上傳的 Docker Image 有沒有問題,我們先在學一個刪除本地 Docker Image,刪除 Docker Image 要使用 docker rmi <image> 這個語法,現在開始刪除本地 Docker Image 輸入以下指令 docker rmi timmmmm
Thumbnail
前言 大家好上次我們教了如何下載 Docker Image 使用,今天我們要教如何產出自己的 Image,這次會使用一個 Dockerfile 範例,自行打包 Docker Image,初步練習使用 Docker 指令 下載 Dockerfile 教學檔案 在這裡我已經幫忙寫好一個 Docke
Thumbnail
前言 大家好上次我們教了如何下載 Docker Image 使用,今天我們要教如何產出自己的 Image,這次會使用一個 Dockerfile 範例,自行打包 Docker Image,初步練習使用 Docker 指令 下載 Dockerfile 教學檔案 在這裡我已經幫忙寫好一個 Docke
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
前言 大家好上次我們教了如何建立自己的 Docker Image,今天我們要來教怎麼把自己做好的 Docker Image 上傳到 Docker Hub,如果以後自己在公司有搭建 Docker Registry,也可以用同樣方式上傳到公司的 Docker Registry 私有倉庫 登入 Doc
Thumbnail
前言 大家好上次我們教了如何建立自己的 Docker Image,今天我們要來教怎麼把自己做好的 Docker Image 上傳到 Docker Hub,如果以後自己在公司有搭建 Docker Registry,也可以用同樣方式上傳到公司的 Docker Registry 私有倉庫 登入 Doc
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News