成都创新互联网站制作重庆分公司

如何理解docker镜像


对于外行人来说,可能都不知道是什么东西,有什么作用,而对于内行人来说,docker则有很大的用处,它可用于创建、编排和管理,可运行于windows和linux系统,其中,docker镜像算是docker一个很重要的部分,大家可以到制作docker镜像。

Docker简介

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

如何理解Docker镜像

可以把Docker镜像理解为 VM 模板,VM 模板就像停止运行的 VM,而 Docker 镜像就像停止运行的容器;而作为一名研发人员,则可以将镜像理解为类(Class)。

首先需要先从镜像仓库服务中拉取镜像。常见的镜像仓库服务是 Docker Hub,但是也存在其他镜像仓库服务。

拉取操作会将镜像下载到本地 Docker ,可以使用该镜像启动一个或者多个容器。

镜像由多个层组成,每层叠加之后,从外部看来就如一个独立的对象。镜像内部是一个精简的操作系统(OS),同时还包含应用运行所必须的文件和依赖包。

因为容器的设计初衷就是快速和小巧,所以镜像通常都比较小。

前面多次提到镜像就像停止运行的容器(类)。实际上,可以停止某个容器的运行,并从中创建新的镜像。

在该前提下,镜像可以理解为一种构建时(build-time)结构,而容器可以理解为一种运行时(run-time)结构

docker镜像的制作方法

方法1:docker commit

1.创建一个安装好apache 工具的容器镜像。

命令是:

[root@localhost]#docker run -it docker.io/centos:latest /bin/bash #运行docker 镜像

[root@localhost]# yum install httpd # 在container 中安装 apache 软件包

[root@localhost]# exit #退出容器镜像

2.根据容器当前状态做一个image 镜像:创建一个安装了apache 工具的centos 镜像

语法:docker commit 或者

方法2:通过:docker build 创建一个基于centos的httpd web 镜像。

使用docker build 创建镜像时,需要使用 dockerfile 文件自动化制作image 镜像

注意:dockerfile 有点像源码编译时./configure后产生的 Makefile

1.创建 docker-build目录

[root@localhost]# mkdir /docker -build

2.进入这个目录

[root@localhost]# cd /docker-build

3.创建一个文件 Dockerfile

[root@localhost docker-build]# touch Dockerfile

注意:make自动化编译时需要makefile文件,自动化创建docker 镜像时,需要Dockerfile

4.编辑dockerfile

Dockerfile 用来创建一个自定义的image,包含了用户指定的软件依赖等。

[root@localhost]#vim Dockerfile

写入的内容:

FROM docker.io/centos:latest #我是基于那个镜像来做的

MAINTAINER #作者是谁

RUN yum -y install httpd #做什么《拿这个镜像docker.io/centos:latest运行实例,然后执行yum命令,进行安装》

ADD start.sh /usr/local/bin/start.sh #把start.sh这个启动脚本添加到/usr/local/bin这个文件下

ADD index.html /var/www/html/index.html #把index.html这个启动脚本添加到/var/www/html这个文件下

以上就是对docker镜像的全部介绍,有制作docker镜像需求的朋友可以考虑到创新互联咨询,今后本站还将推送更多新资讯,请继续关注本站。


创新互联专业为企业提供梧州网站建设、梧州做网站、梧州网站设计、梧州网站制作等企业网站建设、网页设计与制作、梧州企业网站模板建站服务,10年梧州做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。


文章名称:如何理解docker镜像
转载源于:http://cxhlcq.com/article/egjhoc.html

其他资讯

在线咨询

微信咨询

电话咨询

028-86922220(工作日)

18980820575(7×24)

提交需求

返回顶部