本文為博主原創,轉載請註明出處:
自建一個Docker倉庫,可以使用Docker官方提供的開源專案Docker Registry。以下是一些基本步驟:
安裝Docker Registry:
在伺服器上安裝Docker引擎。
使用以下命令拉取Docker Registry映象:docker pull registry:latest
建立Docker Registry容器:
執行以下命令建立一個Docker Registry容器:
docker run -d -p 5000:5000 --restart=always --name registry registry:latest
設定Docker Registry:
編輯/etc/docker/daemon.json
檔案,新增以下內容,以允許Docker使用者端連線到自建的Docker Registry:
{ "insecure-registries": ["your-registry-domain:5000"] }
驗證Docker Registry是否正常執行:
在本地或其他機器上執行以下命令,確保能夠連線到自建的Docker Registry:
docker login your-registry-domain:5000
5.使用自建的Docker Registry:
構建自己的Docker映象,併為其新增your-registry-domain:5000
作為映象倉庫的字首,例如:
docker build -t your-registry-domain:5000/my-image:tag .
推播映象到自建的Docker Registry:
docker push your-registry-domain:5000/my-image:tag
現在,已經成功自建了一個Docker倉庫。其他機器可以使用相同的域名和埠連線到該倉庫,並拉取或推播映象。請注意,這裡只提供了一個簡單的自建Docker倉庫的範例,實際上還可以進行更高階的設定和安全性設定。
6.推播和拉取映象:
docker push
命令將本地映象推播到私有倉庫。docker push my-registry:5000/my-image:latest
將本地映象推播到私有倉庫中。docker pull
命令從私有倉庫拉取映象。docker pull my-registry:5000/my-image:latest
將從私有倉庫中拉取指定映象。在使用 Docker 時,可以通過在映象名稱中指定倉庫地址來區分使用公有倉庫還是私有倉庫。
使用公有倉庫:
docker pull
命令時,只需提供映象名稱即可,例如 docker pull ubuntu:latest
。使用私有倉庫:
<registry-address>/<repository-name>:<tag>
,其中 <registry-address>
是私有倉庫的地址,可以是 IP 地址或域名。docker pull
命令時,指定私有倉庫中的映象名稱,例如 docker pull my-registry:5000/my-image:latest
。 另外,在推播映象到私有倉庫時,也需要指定倉庫地址。使用 docker tag
命令將本地映象標記為要推播到的私有倉庫,並在推播時指定映象的倉庫地址。範例:
# 標記本地映象 docker tag my-local-image:latest my-registry:5000/my-image:latest # 推播映象到私有倉庫 docker push my-registry:5000/my-image:latest
通過指定映象名稱中的倉庫地址,可以明確使用公有倉庫還是私有倉庫中的映象。根據需要,切換到相應的倉庫進行操作。
建立 Dockerfile:
Dockerfile
的文字檔案。Dockerfile
檔案。編寫 Dockerfile:
Dockerfile
中編寫構建映象所需的指令。範例:
# 選擇基礎映象(例如 OpenJDK) FROM openjdk:11-jre-slim # 將服務 jar 包和組態檔複製到映象 COPY test.jar /app/ COPY config.properties /app/ # 設定工作目錄 WORKDIR /app # 執行 Java 服務 CMD ["java", "-jar", "test.jar"]
3.準備服務 JAR 包和組態檔:
test.jar
)和組態檔(例如 config.properties
)放置在與 Dockerfile 相同的目錄下。4.構建映象:
docker build
命令構建映象docker build -t my-java-service:1.0 .
my-java-service
是映象的名稱,1.0
是標籤(版本號),.
表示使用當前目錄作為構建上下文5.檢視構建的映象:
docker images
命令檢視本地構建的映象列表。6.推播映象到私有倉庫:
docker push
命令將本地構建的映象推播到私有 Docker 倉庫。docker push <registry-address>/<repository-name>:<tag>
。docker push my-registry:5000/my-image:latest
將推播名為 "my-image" 的最新版本映象到私有倉庫中。7.檢視私有倉庫中的映象:
docker search
或者私有倉庫專用的命令,檢視映象是否成功推播到私有倉庫中。通過執行以上步驟,您將能夠將原生的 Java 服務和組態檔打包到一個 Docker 映象中。確保 Dockerfile、JAR 包和組態檔在同一目錄下,並根據需要調整 Dockerfile 中的指令和設定,以適應您的專案需求。