Docker pull可以进行身份​​验证,但运行不能

时间:2018-02-19 22:44:20

标签: amazon-web-services docker

我制作,标记和放大将我的第一个(曾经)Docker镜像发布到Quay:

docker build -t myapp .
docker tag <imageId> quay.io/myorg/myapp:1.0.0-SNAPSHOT
docker login quay.io
docker push quay.io/myorg/myapp:1.0.0-SNAPSHOT

然后我登录Quay.io确认已成功推送已标记的图像,确实如此。然后,我连接到一个品牌打击的新AWS EC2实例和followed their instructions来安装Docker:

sudo yum update -y
sudo yum install -y docker
sudo service docker start
sudo usermod -a -G docker ec2-user
sudo docker info

有趣的是,sudo usermod -a -G docker ec2-user命令似乎不像宣传的那样工作,因为我仍然需要将sudo附加到我的所有命令......

所以我试着拉出我标记的图片:

sudo docker pull quay.io/myorg/myapp:1.0.0-SNAPSHOT
Please login prior to pull:
Username: myorguser
Password: <password entered>
1.0.0-SNAPSHOT: Pulling from myorg/myapp
<hashNum1>: Pull complete 
<hashNum2>: Pull complete 
<hashNum3>: Pull complete 
<hashNum4>: Pull complete 
<hashNum5>: Pull complete 
<hashNum6>: Pull complete 
Digest: sha256:<longHashNum>
Status: Downloaded newer image for quay.io/myorg/myapp:1.0.0-SNAPSHOT

到目前为止,这么好(我猜!)。让我们看看我的本地Docker引擎知道哪些图像:

sudo docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
嗯......这似乎不对。哦,让我们'尝试为我的(成功?)拉图像运行一个容器:

sudo docker run -it -p 8080:80 -d --name myapp:1.0.0-SNAPSHOT myapp:1.0.0-SNAPSHOT
Unable to find image 'myapp:1.0.0-SNAPSHOT' locally
docker: Error response from daemon: repository myapp not found: does not exist or no pull access.
See 'docker run --help'.

知道我哪里出错了吗?

1 个答案:

答案 0 :(得分:1)

要列出图片,您需要使用:docker images

拉动时,图像具有相同的标签。因此,如果您希望运行,则需要使用:

sudo docker run -it -p 8080:80 -d --name myapp:1.0.0-SNAPSHOT quay.io/myorg/myapp:1.0.0-SNAPSHOT

如果您想使用简短名称,则需要在docker pull后重新标记:

sudo docker tag quay.io/myorg/myapp:1.0.0-SNAPSHOT myapp:1.0.0-SNAPSHOT

之后,您的docker run命令将起作用。请注意,docker ps适用于正在运行的容器(或者如果与-a一起使用,则最近已退出的容器)