简介
当你创建一个docker容器,它被分配一个全局惟一的标识符(UUID)。这是为了避免命名冲突和脱离人为干预促进自动化的必不可少的。他们能有效的识别主机和网络的容器。但是,为了人们更容易的区分,无论是在长显示、可读的64字符或简单的、频繁显示的12字符,都可能看起来像 285c9f0f9d3d。
为了帮助人们,docker也支持容器用一个2个单词的随机生成的名字,并用底线强调,例如:evil_ptolemy。这可以更简单的告诉一个人这是哪个容器,但是随机名字比起UUID不能让人对容器的运行有更多的观察。
这里有3个技巧可以让你在学习使用容器工作中更容易的实现目标。
1.当你运行容器的时候为容器命名
通过添加–name=meaningful_name让docker运行命令,在交互进程中一个evil_ptolomy变的更易识别而且像docker ps输出命令一样。然而这存在局限性。自动容器名称必须唯一后,你不能使用存疑的名称并且服务规模超出一个容器。
在命令行上或在一个文件:
docker run --name=meaningful_name
举例:如果我们基于Nginx基础镜像上运行一个容器,并且像这样开始:
docker run --name nginx -d nginx
名称会在运行的容器列表中显示:
docker ps Output 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.为容器分配一个主机名
为主机命令提供的价值就是在容器内设置 /etc/hostname和/etc/hosts。因此,它在命令提示符中出现。它在容器域名服务器中发挥作用,并且有助于在学习阶段设置多个容器。从外部访问容器不容易,但是它会出现在容器的日志文件中,并且当这些文件被写进一个大量独立的主机中,它可以使得更容易辨认容器。
命令行界面和docker文件:
docker run --hostname=value OR docker run -h value
当 –name 和—hostname都对识别容器有作用时,有时候,和命名容器无关。当然了,它是关于在容器进行自身清理后你无需去记住它们。
3.当退出后自动删除容器
当排除故障时,它有助于在退出后清除容器。你可以保留日志文件并且研究容器最终状态。有时候,不管怎样,你知道当你运行容器时你不想它闲着。在这种情况下,你可以用—rm标记让它退出时自动删除。这可以更简单的保持清理。
可是注意,如果你正在使用Docker卷,–rm会移除任何没有特别标记名字的卷。
命令行界面和docker文件:
docker run –rm
当你正在创建镜像并且需要一个运行中的容器时非常有用。你可以看,你不想容器填满你的磁盘而你又不打算使用。
结论
这三个标记docker run, –name, –hostname和–rm 可以每个都用他们自己的方式,让你在学习docker时更容易的知道是哪个容器。
原文:Naming Docker Containers: 3 Tips for Beginners
作者:Melissa Anderson
翻译:袁思思
来源:DigitalOcean
原文链接:https://www.digitalocean.com/community/tutorials/naming-docker-containers-3-tips-for-beginners
评论前必须登录!
注册