Docker从头开始:构建映像

Docker容器作为部署和管理云原生分布式系统的最佳实践正在兴起。 容器是Docker映像的实例。 事实证明,关于图像有很多知识。

在这个分为两部分的教程中,我将深入介绍Docker映像。 在第一部分中,我讨论了基本原理,设计注意事项和图像内部检查。 在这一部分中,我将介绍构建自己的映像,进行故障排除以及使用映像存储库。

另一方面,您将对Docker镜像到底是什么以及如何在自己的应用程序和系统中有效利用它们有了深刻的了解。

建筑图片

有两种生成映像的方法。 您可以修改现有容器,然后将其提交为新映像,或者可以编写Dockerfile并将其构建为映像。 我们将仔细研究两者,并说明其优缺点。

手动构建

通过手动构建,您可以像对待普通计算机一样对待容器。 安装软件包,编写文件,完成所有工作后,提交并最终得到一个新映像,该映像用作模板来创建更多相同的容器甚至基于其他映像。

让我们从alpine映像开始,它是基于Alpine Linux的非常小的斯巴达式映像。 我们可以以交互方式运行它以进入外壳。 我们的目标是添加一个名为“ yeah”的文件,其中包含文本“ it works!”。 到根目录,然后从中创建一个名为“ yeah-alpine”的新映像。

开始了。 好的,我们已经在根目录下了。 让我们看看那里有什么。

> docker run -it alpine /bin/sh
/ # ls
bin      dev      etc      home     lib      linuxrc  media    mnt      proc     root     run      sbin     srv      sys      tmp      usr      var

有什么可用的编辑器? 没有vim,没有纳米?

/ # vim
/bin/sh: vim: not found
/ # nano
/bin/sh: nano: not found

那好吧。 我们只想创建一个文件:

/ # echo "it works!" > yeah
/ # cat yeah
it works!

我从交互式外壳退出,可以看到带有docker docker ps --all名为“ vibrant_spenc”的容器。 --all标志很重要,因为容器不再运行。

> docker ps --all
CONTAINER ID IMAGE  COMMAND   CREATED       STATUS NAMES
c8faeb05de5f alpine "/bin/sh" 6 minutes ago Exited vibrant_spence

在这里,我从“ vibrate_spence”容器创建一个新图像。 我添加了提交消息“地雷,地雷,地雷”。

> docker commit -m "mine, mine, mine" vibrant_spence yeah-alpine
sha256:e3c98cd21f4d85a1428...e220da99995fd8bf6b49aa

让我们来看看。 是的,有一个新图像,在它的历史中,您可以看到带有“地雷,地雷,地雷”注释的新图层。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值