• 构建基础镜像

    构建基础镜像

    我将应用打包到镜像中形成我们所需的镜像,往往需要一个基础的镜像作为我们应用服务的外部环境,那么问题来了,基础镜像从何而来?官方推荐的是直接从官网仓库pull一个,但由于官网被墙的比较厉害,所以这里介绍一些官方提供以及个人方法。

    1.使用Debootstrap来创建Ubuntu的base image

    1. $ sudo debootstrap raring raring > /dev/null
    2. $ sudo tar -C raring -c . | docker import - raring
    3. a29c15f1bf7a
    4. $ docker run raring cat /etc/lsb-release
    5. DISTRIB_ID=Ubuntu
    6. DISTRIB_RELEASE=13.04
    7. DISTRIB_CODENAME=raring
    8. DISTRIB_DESCRIPTION="Ubuntu 13.04"

    在docker github上有更多有关基础镜像的介绍

    • BusyBox
    • CentOS / Scientific Linux CERN (SLC) on Debian/Ubuntu or on CentOS/RHEL/SLC/etc.
    • Debian / Ubuntu

    2.使用scratch创建base image
    在Docker registry中有一个scratch,你可以pull拉取下来,

    1. $ sudo docker pull scratch

    甚至可以自己制作

    1. $ tar cv --files-from /dev/null | docker import - scratch

    Scratch镜像很赞,它简洁、小巧而且快速, 它没有bug、安全漏洞、延缓的代码或技术债务。这是因为它基本上是空的。除了Docker添加了点的metadata (译注:元数据为描述数据的数据)。总之它是非常小的一个Docker镜像。
    为Scratch镜像创建内容,具体Dockerfile命令如下:

    1. FROM scratch
    2. ADD hello /
    3. CMD ["/hello"]

    3.下载官方提提供的OS的tar文件
    到OPENVZ上下载基础包然后使用docker limport 加载到本地镜像,这里以ubuntu14.04 为例,从openvz下载一个ubuntu14.04的模板:

    1. wget http://download.openvz.org/template/precreated/ubuntu-14.04-x86_64.tar.gz
    2. cat ubuntu-14.04-x86_64-minimal.tar.gz | docker import - ubuntu:base