如何从零开始构建docker基础镜像

今天小编给大家分享一下如何从零开始构建docker基础镜像的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。容器 vs 虚拟机容器和虚拟机具有相似的资源隔离和分配优势,但功能有所不同,因为容器虚拟化的是操作系统,而不是硬件,因此容器更容易移植,效率也更高。关于容器:对于docker做了简单的了解之后,就需要实际去体验一下安装和构建容器,本例使用centos6.5:1.安装docker相关软件使用service docker status查看docker服务状态的时候,发现没有启动docker dead but pid file exists,执行docker相关命令(如docker ps)的时候会出现cannot connect to the docker daemon. is ‘docker -d’ running on this host?,需要解决这个问题,如下:2.构建基础镜像在使用docker的时候后,可以通过命令docker pull 从镜像库中获取,但是有时候会出现网络问题或是其他原因,导致无法拉取,在docker中国官网介绍使用通过 docker 官方镜像加速来解决无法拉取:您可以使用以下命令直接从该镜像加速地址进行拉取:例如:原文如下:而在本文中,我使用dockerfile来构建基础镜像ubuntu 16.04(xenial),其对应的dockerfile的github地址为:点击这里,搜索方式 香港云主机为在hub.docker.com中搜索ubuntu,即可看见对应的镜像信息。dockerfile内容如下:现在对dockerfile中的相关命令解释一下:from 指的是依赖的基础镜像,如scratch表示的是空白的,从零开始的。依赖的镜像可以是本地的,也可以是远程库的add 指的是添加本地文件到镜像中,如果遇到linux可解压格式文件,会自动解压,这就是为什么整个文件中没有对tar.gz进行显式解压run 运行命令,如安装软件的相关命令cmd 设置启动container时默认执行的命令,这个可以在启动容器时覆盖目前,这个dockerfile中涉及的命令就这几个,其他等以后遇到再进行说明。解释完毕,开始构建:从构建日志可以看出,每条命令为一个step,执行完成之后会产生一个id,类似于6389964016a2,其实,这就是镜像的分层,一层层堆积在一起。到此,一个ubuntu16.04版的docker镜像构建完成,那么接下来就是运行3.运行镜像使用docker run命令运行:其中5ea0b95e8641为当前容器的id,进入容器查看所有进程,pid为1的时bash,linux不应该时init吗?其实,这就是容器与虚拟机的差别,容器的init进程就是主机上docker服务进程,每个容器只是一个进程而已。其中的参数-it指的是前端打开并分配一个终端,-d为在后台运行,我们试试当前这个可不可以使用-d:可以明显的开出来,使用-d后,docker ps查不到任何运行的容器,如果使用-it的话,在别的shell下使用docker ps查看:可以看到,有容器在运行,因为我们没有退出。由此可以看出,容器其实以进程方式运行,执行完成/bin/bash之后,进程消亡,所以容器也就不存在,如果容器里面是一个tomcat服务,则是另外一种情况了。基础镜像基本构建完成,后面的环境搭建,都将基于这个镜像构建。以上就是“如何从零开始构建docker基础镜像”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注开发云行业资讯频道。

相关推荐: java webstart问题怎么解决

这篇文章主要介绍“java webstart问题怎么解决”,在日常操作中,相信很多人在java webstart问题怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java webstart问题怎么解决”的疑惑有所帮助!接…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 07/03 22:12
下一篇 07/03 22:12

相关推荐

发表评论

您的电子邮箱地址不会被公开。