我正在运行一个Docker容器X,它本身需要产生一个新的容器Y。正如文档中所建议的,我在X中绑定了挂载/var/run/docker.sock,以便X可以与主机的Docker进行通信。当X尝试执行docker run SOME_IMAGE时,实际上是主机从SOME_IMAGE生成容器,而不是X。到目前为止还不错。
现在,我想使用来自私有存储库的图像。在主机上,docker run MY.PRIVATE.DOCKER.REGISTRY.com/SOME_IMAGE将自动从MY.PRIVATE.DOCKER.REGISTRY.com拉取SOME_IMAGE。但是,私有存储库需要我进行身份验证,其结果是将我的凭据写入~/.docker/config.json。在此之后,主机可以正常拉取图像。
然而,尽管主机通过了身份验证,容器X仍然无法拉取镜像。我假设这是因为X没有~/.docker/config.json。我也不想在每个Docker容器中都进行身份验证。
如果我还绑定挂载~/.docker/config.json,这是否允许容器透明地从私有存储库中拉出,而无需担心身份验证,只要主机经过身份验证?这有什么重要的缺点吗?
发布于 2020-01-23 04:04:38
是
docker run -v /var/run/docker.sock:/var/run/docker.sock -v /home/me/.docker:/root/.docker -it docker sh
/ $ docker pull private-registry/name:tag
# pulls the image如果我绑定挂载配置,它就能正常工作。它并不适用于所有配置,有些配置调用auth命令来为远程存储库提供凭据。您需要确保这些命令在容器中可用。
https://stackoverflow.com/questions/59867328
复制相似问题