防止Docker拉取远程仓库

3

创建容器时(docker create),有没有一种方法可以限制Docker引擎仅使用本地镜像,而不尝试远程拉取?

这似乎是一个常见的要求,您希望对容器映像具有严格控制。虽然由于安全检查而无法实际加载错误的映像,但我不想让它尝试。


我的意思是...那似乎与docker的初衷相违背? - Cedric Druck
为什么会这样呢?你可以拥有自己的私有Docker注册表,而且你不想下载任何公共镜像。 - Mike Doe
3个回答

1
据我所知,如果图片存在于本地,Docker 不会自动拉取它。您必须明确告诉 Docker 如何操作。
您可以使用私有仓库,通过仓库的主机名访问该镜像,这样就不会出现“误解”。一种方法是将所有镜像推送到私有仓库,这样您只能使用自己的“官方”镜像,然后可能使用 CI 检查您的 Dockerfile/docker-compose 是否符合要求?
如果我没有记错的话,您甚至可以从 hub 推送镜像到私有仓库,并重新标记它们。
玩得开心!

1
我很抱歉,docker run命令没有提供任何标志来避免从远程存储库拉取镜像。可以先检查是否存在镜像$NAME,然后再运行它。
docker image inspect $NAME > /dev/null && docker run $NAME
  • 尝试获取关于图像的信息以检查是否在本地存在 docker image inspect
  • 跳过输出 > /dev/null
  • 如果成功,则图像在本地存在 exit code 0
  • 运行图像 docker run

0
怎么样(例如):
docker load < /var/tmp/b_jira2.tar.xz
docker run --name b_jira -d -p 8080:8080 b_jira

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接