docker基于Alpine Linux构建镜像

发布时间:2018-01-12 21:48:16编辑:admin阅读(8989)

    Alpine Linux,一个只有5M的Docker镜像。是一个面向安全的轻型Linux发行版。不同于通常Linux发行版,Alpine Linux采用了musl libc和busybox以减小系统的体积和运行时资源消耗。在保持瘦身的同时,Alpine Linux还提供了自己的包管理工具apk,可以在其网站上查询,或者直接通过apk命令查询和安装。


    普通的ubuntu镜像有100多M,所以想打包更小的镜像,那么Alpine是再适合不过了

    下载alpine镜像

    # docker pull alpine

    Using default tag: latest

    Trying to pull repository docker.io/library/alpine ...

    latest: Pulling from docker.io/library/alpine

    ff3a5c916c92: Pull complete

    Digest: sha256:7df6db5aa61ae9480f52f0b3a06a140ab98d427f86d8d5de0bedab9b8df6b1c0


    查看本地镜像

    # docker images

    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

    docker.io/alpine    latest              3fd9065eaf02        2 days ago          4.143 MB


    使用alpine镜像启动一个容器,默认alpine没有bash,所以只能用sh

    # docker run -it docker.io/alpine sh
    / #

    更新软件

    / # vi /etc/apk/repositories

    注释掉默认的,改为阿里云的更新源,内容如下:

    #http://dl-cdn.alpinelinux.org/alpine/v3.7/main
    #http://dl-cdn.alpinelinux.org/alpine/v3.7/community
    #aliyun
    https://mirrors.aliyun.com/alpine/v3.6/main/
    https://mirrors.aliyun.com/alpine/v3.6/community/

    更新软件

    / # apk update

    fetch https://mirrors.aliyun.com/alpine/v3.6/main/x86_64/APKINDEX.tar.gz

    fetch https://mirrors.aliyun.com/alpine/v3.6/community/x86_64/APKINDEX.tar.gz

    v3.6.2-243-g9d95c23115 [https://mirrors.aliyun.com/alpine/v3.6/main/]

    v3.6.2-242-g41c32d5e5e [https://mirrors.aliyun.com/alpine/v3.6/community/]

    OK: 8448 distinct packages available


    安装vim和bash

    / # apk add vim bash

    退出当前容器

    / # exit


    下面介绍使用Dockerfile来打包镜像,这也是Docker官方推荐的做法

    # mkdir -p /docker/images/test
    # vim /docker/images/test/Dockerfile

    内容如下:

    FROM docker.io/alpine
    
    RUN echo "#aliyun" > /etc/apk/repositories
    RUN echo "https://mirrors.aliyun.com/alpine/v3.6/main/" >> /etc/apk/repositories
    RUN echo "https://mirrors.aliyun.com/alpine/v3.6/community/" >> /etc/apk/repositories
    RUN apk update
    RUN apk add bash vim

    打包镜像

    # docker build -t alpine_test /docker/images/test

    查看镜像

    # docker images

    REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE

    alpine_test        latest              437a826f6d63        5 seconds ago        32.26 MB

    docker.io/alpine    latest              3fd9065eaf02        2 days ago           4.143 MB


    使用测试镜像启动容器

    # docker run -it alpine_test /bin/bash
    bash-4.3#

    查看vim版本

    bash-4.3# vim -version
    VIM - Vi IMproved 8.0 (2016 Sep 12, compiled May  1 2017 12:47:09)
    Garbage after option argument: "-version"
    More info with: "vim -h"


关键字

上一篇: docker制作镜像

下一篇: Docker修改hosts