Docker容器的映像名称问题

时间:2018-08-15 07:53:33

标签: docker

我正在运行Docker 17.12.1-ce版本。

我对容器和/或图像的命名和设置感到困惑。

我不知道如何设置要显示的图像名称。

$ docker ps -a
CONTAINER ID        IMAGE                COMMAND                  CREATED             STATUS                    PORTS                    NAMES
a940a1fc8cd6        eaa0022f09d0         "/bin/sh -c 'set -ex…"   15 hours ago        Exited (4) 15 hours ago                            psql-Base-test-1
78f14cde1e83        mycomp/postgres:10   "docker-entrypoint.s…"   8 weeks ago         Up 6 weeks                0.0.0.0:5402->5432/tcp   psql-Base-test-2

我希望图像 eaa0022f09d0 还提供一个易于理解的名称,例如 mycomp / postgres:9.6

当我查看图像时,它看起来已经正确设置:

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mycomp/postgres     9.6                 eaa0022f09d0        15 hours ago        37.8MB
mycomp/postgres     10                  46f8aa84d854        8 weeks ago         666MB    

在正确进行命名之前,我需要从图像启动容器吗?

我的一个困惑问题是, docker ps 命令上的 IMAGE 列如何连接到 docker images 列出的图像。似乎不一定是 IMAGE ID ,而是有时是 REPOSITORY TAG 以及 IMAGE ID 的混合。

有人可以分享我的困惑或启发我吗? 据我所知,就像半年前一样,我成功地做到了这一点,但是现在,共识的发展了……

1 个答案:

答案 0 :(得分:1)

执行docker ps -a时,它会显示所有容器。在此,它向您显示了containerID容器的哈希,IMAGE是带有标签的图像名称,容器以command开头,createdstatus,创建容器时给定的所有映射ports,最后是容器的name

docker images命令向您显示系统中存在的所有图像

您可以使用

docker build --tag yourImageName:yourTag .

然后您可以使用运行图像

docker run -d --name YourDesiredName yourImageName:yourTag