Docker建立私有倉庫

westwolf發表於2021-09-09
  • 1. 安裝執行Docker-Registry

docker run -d  
# 指定埠對映管理
-p 5000:5000 -v  
# 指定本地目錄/root/lib/docker/registry/ 掛載到容器
/root/lib/docker/registry/:/var/lib/registry 
#指定映象名稱
registry

# 檢視執行狀態
[root@node1 registry]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAME
Sa1092621c937        registry            "/entrypoint.sh /etc…"   10 seconds ago      Up 8 seconds        0.0.0.0:5000->5000/tcp   compassionate_stonebraker

#檢視建立的私有倉庫中存在的映象
curl 0.0.0.0:5000/v2/_catalog
{"repositories":[]} # 當前沒有任何映象
  • 2. 上傳映象到私有倉庫

# 建立一個映象
# 新建目錄 
mkdir study-springboot-docker
touch Dockerfile
vi Dockerfile

FROM openjdk:8u181
VOLUME /tmp
ADD study-docker-0.0.1.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","app.jar"]
# study-docker-0.0.1.jar 是一個基於Springboot的一個hello world程式

# 構建映象
docker build -t springboot-docker .

# 檢視構建好的映象
[root@localhost springboot]# docker images
REPOSITORY                  TAG                 IMAGE ID            CREATED             SIZE
springboot-docker           latest              cab36712a915        19 minutes ago      640MB

# 標記映象
docker tag springboot-docker 192.168.31.138:5000/springboot-docker:latest
# 當前機器ip為192.168.31.138
# 上傳映象到私有倉庫
docker push 192.168.31.138:5000/springboot-docker:latest
Error response from daemon: Get https://192.168.31.138:5000/v2/: dial tcp 192.168.31.138:5000: connect: no route to host

報錯:

Error response from daemon: Get https://192.168.31.138:5000/v2/: dial tcp 192.168.31.138:5000: connect: no route to host

Docker 預設不允許非  HTTPS  方式推送映象。我們可以透過 Docker 的配置選項來取消這個限制。

Ubuntu 14.04, Debian 7 Wheezy

DOCKER_OPTS="--registry-mirror= --insecure-registries=192.168.31.138:5000"

Ubuntu 16.04+, Debian 8+, centos 7


對於使用  systemd  的系統,請在  /etc/docker/daemon.json  中寫入如下內容(如果檔案不存

在請新建該檔案)

{
    "registry-mirror": [
        ""
        ],
        "insecure-registries": [
            "192.168.31.138:5000"
        ]
}
# 重啟docker
systemctl restart docker
# 再次push
docker push 192.168.31.138:5000/springboot-docker:latest

#檢視建立的私有倉庫中的映象
curl 0.0.0.0:5000/v2/_catalog
{"repositories":[springboot-docker]} # springboot-docker映象已經成功上傳
  • 3. 拉取映象

新開虛擬機器,當前虛擬機器ip為:192.168.31.137 與上面機器同屬一個網段

[root@node1 docker]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
# 當前機器沒有任何映象
# 嘗試拉去192.168.31.138私有倉庫中的映象springboot-docker
[root@node1 docker]# docker pull 192.168.31.138:5000/springboot-docker:latest
Error response from daemon: Get https://192.168.31.138:5000/v2/: dial tcp 192.168.31.138:5000: connect: no route to host
# 按照上述同樣的方式進行處理
# 再次拉取
docker pull 192.168.31.138:5000/springboot-docker:latest
latest: Pulling from springboot-docker
55cbf04beb70: Pull complete 
1607093a898c: Pull complete 
9a8ea045c926: Pull complete 
d4eee24d4dac: Pull complete 
c58988e753d7: Pull complete 
794a04897db9: Pull complete 
70fcfa476f73: Pull complete 
806029475e0c: Pull complete 
67959b355155: Pull complete 
64aa22c5f389: Pull complete 
Digest: sha256:cedb5b62aff153b923594071205e63a565bb6d0d2de3ef2bb27bfa7e94e4d6ae
Status: Downloaded newer image for 192.168.31.138:5000/springboot-docker:latest

檢視映象

docker images
REPOSITORY                              TAG                 IMAGE ID            CREATED                  SIZE
192.168.31.138:5000/springboot-docker   latest              cab36712a915        Less than a second ago   640MB

測試執行容器

docker run -d -p 80:8080 192.168.31.138:5000/springboot-docker
# 訪問測試
curl 127.0.0.1
hello spring boot docker!


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4662/viewspace-2812869/,如需轉載,請註明出處,否則將追究法律責任。

相關文章