Docker 从本地存储库拉取失败

Docker pull from local repository Fails

可能是一个非常基本的问题,但我似乎无法理解这个问题。

所以,我有一个 docker 文件,我已经构建并且构建成功,我还可以 运行 它并在我的本地 PC 上做一些事情,所以,这太棒了。

但是,我似乎无法提取相同的图像(我从 Docker 文件创建的图像),如果我只是 docker 提取相同的图像。据我了解,如果 Docker 在本地找到图像,它应该可以拉取它

所以,这是(我的 Docker 文件的一小段)

FROM companyartifactoryurl/ubuntu:someversion
ENV HTTP_PROXY=proxy:port
ENV HTTPS_PROXY=proxy:port
WORKDIR /code
.....other stuffs....
COPY ./requirements.txt /code/requirements.txt
RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt
COPY ./model /code/model
CMD something

我构建它并获取图像并对其进行标记

testaks

当我做的时候

docker images

我能看到

REPOSITORY |  TAG     | IMAGE ID | CREATED | SIZE
testaks      latest      SomeID     ADate     A Size

然而,当我这样做时

docker pull testaks

我收到一个错误

Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

所以,它可以去获取 ubuntu(来自 docker 文件定义)但不能从我的本地存储库中获取图像?除了默认的 latest 之外,我尝试给它其他标签,但它不起作用。

我错过了什么?

我只是想做一些 POC 和学习,所以还没有准备好推到一个人工制品(我的形象),但试试本地的。另外,代理是一个组织。

你遇到错误是因为你试图从默认 docker.io 注册表中获取 testaks。您可以在本地创建 Docker 注册表,here is docker docs how to do it.

docker run -d -p 5000:5000 --name registry registry:2

然后你可以标记你的图像并推送到本地注册表

docker image tag testaks localhost:5000/testaks
docker push localhost:5000/testaks

现在你可以试试拉

docker pull localhost:5000/testaks