@网络老鼠技术小屋

网络老鼠技术小屋-涂飞平的博客空间

制作第一个Docker容器

3 年前 1

现在在系统中使用的各种Docker Container,基本没有从Docker Hub直接拿来用的,都是自己在之前各种版本的Image基础上制作的。我基本上把Container作为VM来使用,只要制作出包含SSH的系统,就可以派生出各种其他功能的子系统了。Container稳定一段时间后,将工作的命令写在一个脚本中(我的容器固定写在/usr/local/run中),然后,将此Container commit成Image。以后可以从该Image run出多个Container。
我为什么没有采用Dockerfile来完成各种Image的建立呢?有两个原因:
1、使用的工具和软件一般都来自第三方源,由于各种原因,可能导致不同时期,源的地址无法保证能正常访问或者有效,我就多次碰到该情况,不得不经常修改Dockerfile;
2、采用Dockerfile的继承体系,随着版本增多,Dockerfile的数量增多,各Dockerfile间依赖关系难于维护,在新环境重新生成,比较困难,碎片化情况比较严重。

采用Container安装部署,固化Image的方式,有点ghost的风格,比较简洁,只是磁盘开销要求比较大,也不好维护版本,没有发挥Dockerfile的强大能力,但也有其优点:移植(拷贝)方便,对网络和源没有依赖。

下面是我所有Docker Container中,生成第一个Image的构建脚本:

FROM ubuntu:precise
MAINTAINER Sunny# make sure the package repository is up to date
RUN echo "deb http://archive.ubuntu.com/ubuntu precise main universe" > /etc/apt/sources.list
RUN apt-get update

RUN apt-get install -y openssh-server
RUN mkdir /var/run/sshd
RUN echo 'root:123456' |chpasswd

EXPOSE 22
CMD /usr/sbin/sshd -D

评论

"制作第一个Docker容器" 有 1 条评论

  • 匿名 评论:
    2 年前

    开放22端口的默认docker镜像是为了当做轻量级的虚拟机来使用!

编写评论