Docker创建自己需求的镜像

来源:互联网 发布:自定义 仅安装windows 编辑:程序博客网 时间:2024/05/16 06:03
       在前面几篇博客中,我们使用的镜像都是从Docker Hub下载的,要么是官方的,要么是别人上传的。我们有没有办法自己来构建一个镜像,以后就使用自己的镜像呢?答案当然是可以的。这样当我们从docker镜像仓库中下载的镜像不能满足需求时,我们就可以来构建符合自己需求的镜像了。
       目前有两种方式来创建镜像:
  • 从已经创建的镜像中更新镜像,并且提交这个镜像;
  • 使用Dockerfile指令来创建一个新的镜像;


  • 第一种
       通过对已有的镜像做一些符合自己需求的更改,然后保存该镜像即可。

       记住这个容器的ID为:1803184fd6c3.     是按我们的需求更改的容器。然后使用docker commit来提交容器副本。提交完成后,我们创建的镜像已经成功了。可以仔细看到发现,这个镜像commit后的sha256也就是这个镜像的镜像ID。

-m:提交的描述信息,可以详细的填写;
-a:指定镜像作者;
1803184fd6c3:需要构建的容器ID;
chenyufeng/ubuntu:指定要创建的目标镜像名,随意你取名,见名知意就好;


      然后可以使用这个新的镜像启动一个容器:


  • 第二种:
       首先创建Dockerfile文件,其实就是一个脚本文件,其中包含一组指令来告诉Docker如何构建我们的镜像:

FROM    centos:6.7
MAINTAINER      chenyufeng "yufengcode@gmail.com"

RUN     /bin/echo 'root:123456' |chpasswd
RUN     useradd chenyufeng
RUN     /bin/echo 'chenyufeng:123456' |chpasswd
RUN     /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local
EXPOSE  22
EXPOSE  80
CMD     /usr/sbin/sshd -D

       每一个指令都会在镜像上创建一个新的层,每一个指令的前缀都必须是大写。然后使用“docker build”构建镜像:

docker build -t chenyufeng/centos:6.7 .

      其中-t指定要创建的目标镜像名;
      . 指定Dockerfile文件所在目录,也可以是绝对路径。【千万不要忘记最后要指定路径啊,不要忘记那个点】


       然后就可以查看到镜像chenyufeng/centos:6.7:


       然后就可以用该镜像创建容器:



       为自己的镜像设置标签,可以看到ID为4b9657bd1151镜像多了一个标签,但是它们是同一个镜像,因为镜像ID是一样的。