docker run的结果是;找不到图像";如果未找到链接的容器
如果在未找到链接容器的情况下运行映像,则可能会收到错误行为和错误消息:docker run的结果是;找不到图像";如果未找到链接的容器,docker,Docker,如果在未找到链接容器的情况下运行映像,则可能会收到错误行为和错误消息: # this works: > docker run --rm -d --name natsserver nats > docker run --rm -it --name hello-world --link natsserver hello-world # now stop natsserver again... > docker stop natsserver 当我用同一个命令再次运行hello
# this works:
> docker run --rm -d --name natsserver nats
> docker run --rm -it --name hello-world --link natsserver hello-world
# now stop natsserver again...
> docker stop natsserver
当我用同一个命令再次运行hello world时,我不明白错误处理的第一部分——docker为什么要拉
> docker run --rm -it --name hello-world --link natsserver hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
Digest: sha256:b8ba256769a0ac28dd126d584e0a2011cd2877f3f76e093a7ae560f2a5301c00
Status: Image is up to date for hello-world:latest
docker: Error response from daemon: could not get container for natsserver: No such container: natsserver.
See 'docker run --help'.
如果我试图运行我在本地建立的映像,情况会变得更糟:
> docker build -t nats-logger .
[...]
Successfully tagged nats-logger:latest
> docker run --rm -it --name nats-logger --link=natsserver nats-logger
Unable to find image 'nats-logger:latest' locally
docker: Error response from daemon: pull access denied for nats-logger, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.
See 'docker run --help'.
因此,我的问题是:
a) docker是否被允许在这种情况下尝试拉动,或者这是一种不良行为
b) 这真的是一个错误消息,还是我错过了什么
注意:我正在运行Docker版本19.03.2,在Windows 10上构建6a30dfc
在这种情况下docker可以试着拉吗
如果机器上没有图像,Docker将提取图像
在本地找不到图像“hello world:latest”
此警告消息不是由于链接,而是因为系统本地映像中不存在hello world:latest
。因此,当运行docker run时,它将在本地查找,如果不存在,则将从远程提取
首先,最好使用docker compose,而不是传统的容器链接
如果容器未运行,则无法链接该容器。使用docker ps
验证容器natsserver
,然后如果它正在运行,则可以链接
docker run --rm -it --name hello-world --link natsserver:my_natserver_host hello-world
完成后,您可以检查链接
docker inspect hello-world | grep -A 1 Links
传统容器链接
警告:--link标志
是Docker的传统功能。可能
最终将被移除。除非你绝对需要继续使用
因此,我们建议您使用用户定义的网络来
两个容器之间的通信,而不是使用--link
。一个
用户定义的网络不支持您可以使用的功能
--link
在容器之间共享环境变量。但是,您可以使用卷等其他机制来共享环境
以更可控的方式在容器之间创建变量
- 只需尝试“docker登录”
- 检查您的图像名称是否存在于docker hub中
- 并检查正确的docker build命令->
docker build-t映像名。
- 检查Docker文件脚本的正确性
docker:daemon的错误响应:无法获取natsserver的容器:没有这样的容器:natsserver。
说所有容器都应该运行