我制作,标记和放大将我的第一个(曾经)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'.
知道我哪里出错了吗?
答案 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
一起使用,则最近已退出的容器)