Docker微容器 Alpine Linux
简介
使用 Docker 创建容器时,基础镜像通常选择 Ubuntu 或 Centos,不管哪个镜像的大小都在 100MB 以上。
Alpine Linux 是一个面向安全的轻型的 Linux 发行版。
Alpine Linux 采用了 musl libc 和 busybox 以减小系统的体积和运行时资源消耗。
在保持瘦身的同时,Alpine Linux 还提供了自己的包管理工具 apk。
关键的是,相比于其他 Linux 的 Docker 镜像,它的容量非常小,仅仅只有 5MB。
Alpine Linux 的官网:
https://pkgs.alpinelinux.org/packages
下面使用 Alpine 镜像,来制作 nginx 容器。
制作 Dockerfile
1 | # vim Dockerfile |
用 Dockerfile 创建镜像
1 | docker build -t zhanghao/nginx . |
用创建好的镜像启动容器
确认镜像信息
1 | docker images |
Alpine 的镜像不到 5MB,用 Alpine 作为基础镜像的 nginx 镜像不到 7MB。
启动容器
1 | docker run --name my-alpine-nginx -d -p 80:80 zhanghao/nginx |
问题点
- Alpine Linux 使用了 musl,可能和其他 Linux 发行版使用的 glibc 实现会有些不同。
- musl 实现的 DNS 服务不会使用 resolv.conf 文件中的 search 和 domain 两个配置,通过 DNS 来进行服务发现时需要注意。
后记
Alpine Linux 的最大优势是小,有消息说 Docker 官方镜像将会使用 Alpine Linux 替换 Ubuntu。