两个 Docker 使用神技,99% 的人都不知道!

最近发现两个非常好用的工具,一个是 runlike,一个是 whaler

  • runlike:通过容器打印出容器的启动命令

  • whaler:通过镜像导出dockerfile

听起来是不是想说 N...B... 哈哈,那就走起?

1找回 Docker 容器运行的命令

平时可能因为测试或者一些规范的操作方式导致启动一个容器,忘记了这个容器的启动命令是什么了,又需要找回来在别的机器上创建的时候,就很麻烦,可能很多人会想到通过 docker inspect 分析输出的 json 文件中的volumeportsEnv

$ docker inspect $container_name

这个命令应该是很熟悉的,查看容器的基本信息。

虽然这样也能找到运行容器的命令,但是依旧还需要时间去整理,因此这里分享一个可以直接打印运行命令的工具runlike[1],在runlike传递一个容器名称,就会直接打印出该容器的运行命令。runlike使用起来非常方便,可以直接通过pip安装,也可以通过容器方式免安装使用:

# pip
$ pip install runlike
# by docker
$ alias runlike='docker run --rm -v /var/run/docker.sock:/var/run/docker.sock assaflavie/runlike'

下面还是通过上面那个容器测试一下是否可以:

这样使用起来就方便很多了。关于 runlike 一些其他的选项,可以直接通过--help学习。

2从镜像导出Dockerfile

平时可能会构建很多不同的镜像,比如维护一些基础Docker镜像、想查看一些公开仓库的Docker镜像是怎么构建的,或因为长时间不维护找不到当时构建镜像的 Dockerfile,或者因为网络无法查看时,能从镜像导出Dockerfile就显得很重要,这里可以通过 whaler[2] 来快速的导出. 这里我们依旧不安装,通过容器化的方式使用dfimage命令,便于使用,我们将该命令写成命令别名:

# alias export docker image to dockerfile$ alias whaler='docker run -t --rm -v /var/run/docker.sock:/var/run/docker.sock:ro pegleg/whaler'

然后通过whaler命令输出 pegleg/whaler 镜像的dockerfile文件:

这样就输出pegleg/whaler这个镜像的 Dockerfile 大致的内容了,还是彩色的输出呢?哈哈,有心了。从上图可以看到输出的 Dockerfile 也与平常写的不太一样,可以在 Github 上看下仓库内的 Dockerfile 文件

FROM golang:1.14.4 AS builder
WORKDIR $GOPATH
RUN go get -u github.com/P3GLEG/Whaler
WORKDIR $GOPATH/src/github.com/P3GLEG/Whaler
RUN export CGO_ENABLED=0 && go build .
RUN cp Whaler /root/Whaler

FROM alpine:3.12.0
WORKDIR /root/
COPY --from=builder /root/Whaler .
ENTRYPOINT ['./Whaler']

由 Dockerfile 来看,这个 whaler 采用的多阶段构建,所以无法输出 --from=builder 的构建内容,这个锅 whaler 不背,我们可以换一个镜像看看:

这个就显示的很自然,很有熟悉的味道了。whaler 支持同时分析多个镜像等等功能,这里就不在说了,感兴趣的可以自己看一下。至于 whaler 是怎么实现的,其实看一下源码就明白了。

良许个人微信


(0)

相关推荐

  • docker学习前述

    什么东西都不懂直接来学习docker是有点难的,学习docker需要哪些技术基础做支撑? Linux(相关常用的命令要会) springboot docker学习大纲如下: Docker概述 Dock ...

  • Docker 制作Nginx镜像

    参考文章:https://www.jianshu.com/p/dc4cd0547d1e 镜像的制作方式有两种,一种是下载别人的镜像之后再制作成自己的镜像,一种是从头开始制作自己的镜像 第一种,下载别人 ...

  • 剥茧抽丝:反向工程Docker镜像

    现在越来越多的企业基于容器和云来构建自己的基础架构,管理的容器越来越多,时而会遇到一些容器镜像不知道是干嘛的?容器运行时参数是什么?容器跑的应用是什么?针对这些疑问今天就是学习如何剖析在线的容器及其镜 ...

  • 练起来!一套千年养生神技,很多人都在暗暗的锻炼

    八段锦是流传将近千年的养生神技,历代备受热爱养生的人青睐,八段锦由八节组成. 说到八段锦的优势,它能改善神经体液调节功能和加强血液循环,对腹腔脏器有柔和的按摩作用,对神经系统.心血管系统.消化系统.呼 ...

  • 一套千年养生神技,很多人都在暗暗的锻炼(视频演示)

    推拿手法视频 八段锦是流传将近千年的养生神技,历代备受热爱养生的人青睐,八段锦由八节组成.说到八段锦的优势,它能改善神经体液调节功能和加强血液循环,对腹腔脏器有柔和的按摩作用,对神经系统.心血管系统. ...

  • 一套千年养生神技,很多人都在暗暗的锻炼

    八段锦是流传将近千年的养生神技,历代备受热爱养生的人青睐,八段锦由八节组成.说到八段锦的优势,它能改善神经体液调节功能和加强血液循环,对腹腔脏器有柔和的按摩作用,对神经系统.心血管系统.消化系统.呼吸 ...

  • 我赌5毛钱,打印表格,99%的人都不知道这两个隐藏细节!

    发送[插件] 本文作者:雅梨子 视频策划:视频小分队 本文编辑:竺兰 大家好!我是雅梨子,每天学点 Excel,工作效率 up~up~ 作为职场打工人,你们有遇到过这些情况吗? ❶ 电脑太卡了,寻找账 ...

  • ♦一套千年养生神技,很多人都在暗暗的锻炼(视频演示)

    写给粉丝的话: 八段锦是流传将近千年的养生神技,历代备受热爱养生的人青睐,八段锦由八节组成.说到八段锦的优势,它能改善神经体液调节功能和加强血液循环,对腹腔脏器有柔和的按摩作用,对神经系统.心血管系统 ...

  • 99%的人都不知道加仓操作

    99%的人都不知道加仓操作

  • 学书法,这个误区99%的人都不知道!

    练字即是敛心 学书法,是提升一个人心境和品性的最好方法.但是造成那么多人没有行动的原因,无非就是太难了.每一个学书法的人,都有一个艰难的过程: 完全零基础,怀疑自己学不好: 买了一大堆材料,千头万绪不 ...

  • 这个穴位,99%的人都不知道,但效果惊人!

    人体穴位多不胜数,有些穴位拥有非常神奇的效果,但是不为人知,这就很可惜了,好穴位应该广为人知.今天就为大家介绍一个鲜为人知的奇穴--制污穴! 一.制污穴,你知道么? 制污穴属经外奇穴,位于大指背中央线 ...