docker添加新的环境变量_这5种实⽤⼯具,满⾜你对Docker
的所有需求!
作者:Shekhar Gulati
翻译:Vincent
⽹上有很多不错的Docker⼯具,⼤部分在GitHub上都是开源的。最近两年,我⼀直在使⽤Docker,并将其应⽤到了⼀些开发项⽬上。如果你刚开始使⽤Docker,你会发现它能应⽤到的实例远远多于预想。Docker能为你做更多,不会让你失望的!
Docker社区⾮常活跃,每天都有许多新的实⽤⼯具出现。因此,天天去检查更新,试图跟上社区的步伐确实有点困难。所以我在此分享在⼯作中收集到的⼀些有趣⽽实⽤的Docker⼯具,帮助⼤家提⾼⽇常⼯作效率。
下⾯开始⼀⼀介绍我在使⽤Docker的过程中到的有⽤⼯具吧。
1. Watchtower:⾃动更新Docker容器
Watchtower监视容器运⾏过程,并且能够捕捉到容器中的变化。当Watchtower检测到有镜像发⽣变化,会⾃动使⽤新镜像重启容器。我在本地开发环境中创建的最后⼀个镜像就⽤到了Watchtower。
Watchtower本⾝就像⼀个Docker镜像,所以它启动容器的⽅式和别的镜像⽆异。运⾏Watchtower的命令如下:
现在,开启⼀个容器,⽤Watchtower来监控。
Watchtower会开始监控friendlyhello容器。接下来我把新镜像push到Docker Hub,Watchtower接下来就会检测到有新镜像可⽤。它会关掉容器,然后⽤新镜像重启容器。这⾥会⽤到我们刚刚传到运⾏命令中的选项,换句话说,容器会在4000:80 公共端⼝选项上开启。
默认情况下,Watchtower会轮询Dockder Hub注册表查更新的镜像。你也可以通过在环境变量REPO_USER和REPO_PASS中添加指定注册表证书,来设置Watchtower轮询私有注册表。
了解更多Watchtower的⽤法,我推荐Watchtower⽂档( dwz/65mKVS)。2. docker-gc:收集垃圾容器和镜像
docker-gc⼯具能够帮助Docker host清理不需要的容器和镜像。它可以删除存在⼀⼩时以上的容器。同时,它也可以删除没有容器的镜像。
docker-gc可以被当做脚本,也可以被视为容器。我们⽤容器⽅法运⾏docker-gc,⽤它来查可以被删除的容器和镜像。
在上述命令中,我们安装Docker socket⽂件,这样docker-gc就可以和Docker API进⾏交互。设置环境变量DRY_RUN=1,查可被删除的容器和镜像。如果我们不这样设置,docker-gc直接删除它们。所以在删除之前,还是先确认⼀下。以上代码的输出结果如下:
确认需要删除的容器和镜像之后,再次运⾏docker-gc来进⾏删除清理,这次就不⽤再设置DRY_RUN参数了。
上述命令运⾏后的输出会告诉你哪些容器和镜像已经被docker-gc删除。了解更多docker-gc⽀持的选项,我推荐阅读docker-gc documentation( dwz/65nnWn)。3. docker-slim:给你的容器瘦⾝
如果你对Docker镜像的⼤⼩有过担忧,docker-slim绝对是⼀丸灵丹妙药。
我创建了⼀个Docker镜像⽰例应⽤“friendlyhello”,Docker官⽅⽂档中有⽤到。这个镜像的⼤⼩如下图所⽰,194MB。
这么简单的⼀个应⽤,我们就要下载194MB的数据。再来看看docker-slim究竟能让它“瘦”多少。
docker-slim⼯具先是对“胖镜像”进⾏⼀系列的检测,最终创建了对应的“瘦镜像”。看⼀下“瘦镜像”的⼤⼩:
正如上图所⽰,“瘦镜像”⼤⼩为24.9MB。开启容器,运⾏照旧。docker-slim对Java、Python、Ruby和Node.js应⽤都⾮常友好。
4. Rocker:打破Dockerfile限制
java设置环境变量的方法代码很多Docker⽤户都⽤Dockerfile来构建镜像。Dockerfile是定义命令的声明⽅式,通过在命令⾏调⽤这些命令,可以对镜像进⾏操作。
Docker镜像的⼤⼩
构建速度缓慢
MOUNT⽤来分享volume,这样依赖管理⼯具就可以重⽤。
FROM指令在Dockerfile中也存在。Rocker添加了不⽌⼀条FROM指令。这就意味着,⼀个Rockerfile可以通过创建多个镜像。⾸个指令集使⽤所有依赖来创建artifact,第⼆个指令集可以使⽤已有的artifact。这种做法极⼤的降低了镜像的⼤⼩。
TAG⽤来标记处于不同构建阶段的镜像。这样⼀来就不在需要⼿动标记镜像了。
PUSH⽤来把镜像push到registry。
ATTACH⽤来和中间步骤交互,在debug的时候⾮常有⽤。
安装rocker,对Mac⽤户来说,只要运⾏⼏条brew命令就⾏了:
安装完成后,就可以使⽤rocker创建镜像。
创建镜像并将其push到Docker Hub,可以⽤下⾯这条命令:
Rocker功能⼗分完备,了解更多,请参阅其⽂档(t/RSYSNYp)。5. ctop:容器的顶层界⾯⼯具
ctop是我最近才开始使⽤的⼯具,它可以为多个容器提供实时显⽰的数据视图。如果你是Mac⽤户,可以按下⾯的命令安装ctop。
安装之后,只需配置DOCKER_HOST环境变量,即可使⽤ctop。
运⾏ctop命令,可以查看所有容器的状态。
运⾏ctop-a命令,可以仅查看当前运⾏的容器。
以上,就是我觉得⽐较有⽤的Docker⼯具了。如果你也⽤到过⼀些好⽤的Docker⼯具,不妨在评论区告诉我们吧。
作者:Shekhar Gulati
翻译:Vincent
推荐阅读
【1】终于整理齐了,电⼦⼯程师“设计锦囊”,你值得拥有!
【2】半导体⾏业的⼈都在关注这⼏个
【3】10种常⽤的软件滤波⽅法及⽰例程序
【4】如何着⼿电源设计?3种经典拓扑详解(附电路图、计算公式)
你和⼤⽜⼯程师之间到底差了啥?
加⼊技术交流,与⾼⼿⾯对⾯
添加管理员
加⼊“中国电⼦⽹”交流
具体加详情请戳
→“中国电⼦⽹技术交流” ←

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。