命名Docker容器:初学者的3个提示

创建Docker容器时,将为其分配一个通用唯一标识符或UUID。这些对于避免命名冲突和在没有人为干预的情况下促进自动化是至关重要的。他们有效地识别到主机和网络的容器。但是,他们需要更多...

介绍

创建Docker容器时,将为其分配一个通用唯一标识符(UUID)。 这些对于避免命名冲突和促进没有人为干预的自动化是必要的。 他们有效地识别到主机和网络的容器。 然而,他们需要更多的努力,为人类所区分,无论是在64个字符的人类可读的长显示器或更频繁地显示12个字符的短表,这可能看起来像285c9f0f9d3d

为了帮助人类,Docker还与两个单词,用下划线连接,如一个随机生成的名称提供容器evil_ptolemy 这可以更容易地告诉一个容器从另一个,但随机名称没有给出任何更多的洞察容器功能比UUID。

这里有三个提示,可以使你更容易保持轴承,当你学会使用容器。

1 - 在运行容器时命名容器

通过添加--name= meaningful_namedocker run命令,一个evil_ptolomy成为互动环节,以及在像命令的输出更容易识别docker ps 但是有限制。 由于容器名称必须是唯一的,因此不能在一个容器之外使用故意命名和缩放服务。

在命令行或Dockerfile中:
docker run --name= meaningful_name

例如,如果我们跑了基于一个集装箱nginx基本映像,并开始像这样:

docker run --name nginx -d nginx

该名称将显示在正在运行的容器的列表中:

docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
08f333ef7216        nginx               "nginx -g 'daemon off"   15 seconds ago      Up 14 seconds       80/tcp, 443/tcp      nginx

虽然名字出现在输出docker ps ,可用于管理容器,如果你重视它,或者在日志文件中,将不会出现在容器的命令提示符。 为了实现这一点,您还需要分配一个主机名。

2 - 为容器分配主机名

供给的值--hostname命令设置里面/etc/hostname/etc/hosts的容器内。 因此,它出现在命令提示符下。 它在配置角色容器的DNS和可以同时在多容器设置的学习阶段是有帮助的。 从容器外部访问并不容易,但它将显示在容器的日志文件中,当这些文件写入独立于主机的卷时,可以更容易地识别容器。

CLI和Dockerfile:
docker run --hostname= valuedocker run -h value

虽然--name--hostname是集装箱的识别都是有用的,有时,它不是在所有的命名容器。 相反,它是关于一个容器清理后自己,而不必记得自己做。

3 - 在容器退出时自动删除容器

当调试时,停止的容器退出后仍然存在是有帮助的。 您可以保留日志文件等数据,并调查容器的最终状态。 然而,有时,你知道当你运行容器,你不会想要它在你完成后。 在这种情况下,你可以使用--rm标志退出时自动删除。 这可以使得更容易保持清洁。

小心,虽然! 如果您使用泊坞窗卷, --rm将删除任何通过名称不指定卷

CLI和Dockerfile:
docker run --rm

当您构建映像并需要附加到正在运行的容器时,这是非常有用的。 你想环顾四周,你不想用你不打算再次使用的容器来填充你的磁盘。

结论

这三个标志docker run--name--hostname--rm可以各自以自己的方式,使之更容易知道学习泊坞窗时,什么什么的。 您可以了解更多有关容器和与工作docker run在命令与Docker容器工作指南。