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"