介绍
创建Docker容器时,将为其分配一个通用唯一标识符(UUID)。 这些对于避免命名冲突和促进没有人为干预的自动化是必要的。 他们有效地识别到主机和网络的容器。 然而,他们需要更多的努力,为人类所区分,无论是在64个字符的人类可读的长显示器或更频繁地显示12个字符的短表,这可能看起来像285c9f0f9d3d
。
为了帮助人类,Docker还与两个单词,用下划线连接,如一个随机生成的名称提供容器evil_ptolemy
。 这可以更容易地告诉一个容器从另一个,但随机名称没有给出任何更多的洞察容器功能比UUID。
这里有三个提示,可以使你更容易保持轴承,当你学会使用容器。
1 - 在运行容器时命名容器
通过添加--name= meaningful_name
到docker run
命令,一个evil_ptolomy
成为互动环节,以及在像命令的输出更容易识别docker ps
。 但是有限制。 由于容器名称必须是唯一的,因此不能在一个容器之外使用故意命名和缩放服务。
在命令行或Dockerfile中:
docker run --name= meaningful_name
例如,如果我们跑了基于一个集装箱nginx
基本映像,并开始像这样:
docker run --name nginx -d nginx
该名称将显示在正在运行的容器的列表中:
docker ps
OutputCONTAINER 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= value
或docker run -h value
虽然--name
和--hostname
是集装箱的识别都是有用的,有时,它不是在所有的命名容器。 相反,它是关于一个容器清理后自己,而不必记得自己做。
3 - 在容器退出时自动删除容器
当调试时,停止的容器退出后仍然存在是有帮助的。 您可以保留日志文件等数据,并调查容器的最终状态。 然而,有时,你知道当你运行容器,你不会想要它在你完成后。 在这种情况下,你可以使用--rm
标志退出时自动删除。 这可以使得更容易保持清洁。
小心,虽然! 如果您使用泊坞窗卷, --rm
将删除任何通过名称不指定卷 。
CLI和Dockerfile:
docker run --rm
当您构建映像并需要附加到正在运行的容器时,这是非常有用的。 你想环顾四周,你不想用你不打算再次使用的容器来填充你的磁盘。
结论
这三个标志docker run
, --name
, --hostname
和--rm
可以各自以自己的方式,使之更容易知道学习泊坞窗时,什么什么的。 您可以了解更多有关容器和与工作docker run
在命令与Docker容器工作指南。