簡體   English   中英

docker push 到注冊表不起作用

[英]docker push to registry does not work

當我嘗試推送到我之前創建的注冊表時,我遇到了問題。 這是我遵循的步驟。

docker run -d -p 5001:5002 --restart=always --name new_registry registry:2

docker build -t test-app .

docker run -p 50100:8080 -d --name app test-app
docker tag test-app localhost:5001/test:latest
docker push localhost:5001/test:latest

==================================================

 ✘  ~/G/S/d/a/App   master   docker push localhost:5001/test:latest
The push refers to a repository [localhost:5001/test] (len: 1)
Sending image list
Put http://localhost:5001/v1/repositories/test/: net/http: transport closed before response was received

以下是 docker images 命令的輸出:

  ~/G/S/d/a/App   master   docker images
REPOSITORY            TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
test-app              latest              78f9362f7cd5        51 minutes ago      547.8 MB
localhost:5001/test   latest              78f9362f7cd5        51 minutes ago      547.8 MB
registry              2                   5d165b8e4b20        3 weeks ago         220.1 MB

更多詳情如下:

 ~/G/S/d/a/patterns_and_tools  docker-machine env default
set -x DOCKER_TLS_VERIFY "1";
set -x DOCKER_HOST "tcp://192.168.yyy.xxx:2376";
set -x DOCKER_CERT_PATH "/Users/zack/.docker/machine/machines/default";
set -x DOCKER_MACHINE_NAME "default";
# Run this command to configure your shell:
# eval (docker-machine env default)
 ~/G/S/d/a/patterns_and_tools 

我檢查了 VM 中的網絡設置。 它們如下:

名稱:dockersetting 協議:TCP 主機 IP:主機端口:50100 訪客IP:訪客端口:50100

一個標記boot2docker (即使它已經被廢棄泊塢窗機)意味着你不能直接在Linux上,但在Windows或Mac,使用Linux虛擬機。

您在docker/distribution (新注冊服務器)的第 523期報告了類似的錯誤消息

當您綁定到容器內的 localhost 時,即使您指定了端口映射,該服務在容器外也將不可用。
當 docker daemon 去連接時,它無法連接到端口,因為服務沒有綁定到容器的“外部”接口。

這意味着您需要設置端口轉發,或使用docker-machine ip new_registry ip address

docker push $(docker-machine ip new_registry):5001/test:latest

創建注冊表時 5000:5000 有效,但 5001:5002 無效。

有可能 VM 已設置為端口轉發端口 5000,但未設置為 5001(類似於此圖片)。

這意味着注冊表映像公開端口 5000 :您可以將其映射到主機端口 5000 或 5001 或您想要的任何端口:但它必須是您映射的端口 5000 :

docker run -d -p 5001:5000 --restart=always --name new_registry registry:2
                      ^^^^

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM