Docker利用busybox创建基础镜像(base image)

2020-06-17 06:38:56易采站长站整理

[root@kong rootfs]#

至此,我们理解了from scratch确实不会有额外的添加,接下来我们像alpine那样添加如下两句


ADD rootfs.tar /
CMD ["/bin/sh"]

我们的Dockerfile也是几乎一样的三行


[root@kong rootfs]# cat Dockerfile
From scratch
ADD rootfs.tar /
CMD ["/bin/sh"][root@kong rootfs]#

这样就创建了一个1M的busybox为基础的镜像


[root@kong rootfs]# docker build -t busyboxbase:latest .
Sending build context to Docker daemon 2.415 MB
Step 1/3 : FROM scratch
--->
Step 2/3 : ADD rootfs.tar /
---> 0fbb0c8c7579
Removing intermediate container 8311e96f456c
Step 3/3 : CMD /bin/sh
---> Running in efb85c4526bf
---> 02270c80a4e4
Removing intermediate container efb85c4526bf
Successfully built 02270c80a4e4
[root@kong rootfs]# docker images |grep busyboxbase
busyboxbase latest 02270c80a4e4 9 seconds ago 1.01 MB
[root@kong rootfs]#

运行并使用

使用docker run发现此镜像所启动的容器并无异常之处


[root@kong rootfs]# docker run --rm -it busyboxbase sh
/ # hostname
b7f9e9646746
/ # uname -a
Linux b7f9e9646746 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 GNU/Linux
/ #

小结

这篇文章介绍了如何使用busybox结合from scratch机制创建docker的基础镜像以及相关原理。本文利用busybox 1.28.1版本创建了一个1.01M的可用的基础镜像,从瑞士军刀到瑞士指甲刀,你可以继续优化到若干K都是可行的,但是到了10M以下其实应该更多考虑的是后续的扩展性和功能性的因素了。但是从另外的角度考虑,集成进来了那么多功能的同时,也将这些功能的不安定因素也集成进来了。利用from scratch机制,创建小并且依赖性少的上下文环境是非常有用的。

参考文献

https://docs.docker.com/develop/develop-images/baseimages/

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对软件开发网的支持。如果你想了解更多相关内容请查看下面相关链接

您可能感兴趣的文章:Jenkins简介与Docker部署Jenkins的方法详解如何解决docker容器无法通过IP访问宿主机问题详解Docker退出容器不关闭容器的方法Docker创建一个Nginx服务器的方法步骤为docker中的nginx配置https的方法步骤容器Docker入门详解详解Docker+Jenkins+Gitlab+Django应用部署实践Docker入门安装教程(小白篇)yum下载rpm以及相关依赖的方式离线安装dockerDocker图文详解