【问题标题】:Cannot run an image in Docker无法在 Docker 中运行映像
【发布时间】:2020-09-08 16:56:00
【问题描述】:

我根据我的某个项目创建了一个名为“helloworld”的图像。

如果我跑步:

泊坞窗图片

我可以在列表顶部看到它。

现在如果我想运行它,docker 会抱怨它不存在。

运行这个:

docker run -p 8080:8080 helloworld

返回这个:

docker:来自守护进程的错误响应:对 helloworld 的拉取访问被拒绝, 存储库不存在或可能需要“docker login”:拒绝: 请求的资源访问被拒绝。请参阅“docker run --help”。

为什么 docker 抱怨我的镜像不存在?

【问题讨论】:

    标签: docker


    【解决方案1】:

    它抱怨,因为:

    docker run -p 8080:8080 helloworld
    

    是这个的缩短版:

    docker run -p 8080:8080 docker.io/library/helloworld:latest
    

    并且,根据屏幕截图,您的图像被称为

    docker.io/library/helloworld:1.0
    

    所以正确的命令(跳过默认前缀)是:

    docker run -p 8080:8080 helloworld:1.0
    

    【讨论】:

      【解决方案2】:

      其他答案是正确的,但没有清楚地解释为什么它们是正确的。

      docker run 命令需要一个图像名称和一个可选的标签(即docker run IMAGE[:TAG])。如果未提供标签,则默认为latest

      运行docker run helloworld相当于docker run helloworld:latest,但是根据docker images,OP的系统中不存在这个镜像。

      解决方法是指定图片标签:helloworld:1.0

      【讨论】:

        【解决方案3】:

        你的镜像构建命令:

        docker build --rm -f "Dockerfile" -t helloworld:1.0 "."
        

        意思是你的图片名称是helloworld:1.0

        如果你跑过docker build --rm -f "Dockerfile" -t helloworld "."

        那么你的图片名称是helloworldhelloworld:latest,你的第一次尝试就可以了。

        要解决您的问题,请改为运行:

        docker run -p 8080:8080 helloworld:1.0
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-11-27
          • 2022-08-23
          • 1970-01-01
          • 2021-06-24
          • 2017-01-06
          • 2016-07-15
          • 2021-01-21
          • 1970-01-01
          相关资源
          最近更新 更多