我构建,标记&发布了我的第一个(有史以来(docker图像:
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实例,并按照他们的说明安装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'.
有什么想法我要去哪里?
要列出图像,您需要使用: 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
一起使用,则在最近已退出(