Docker系列之(三):Docker微容器Alpine Linux

http://www.cnblogs.com/ee900222/p/docker_3.html

1. 前言

使用Docker创建容器时,基础镜像通常选择Ubuntu或Centos,不管哪个镜像的大小都在100MB以上。

 

Alpine Linux是一个面向安全的轻型的Linux发行版。

Alpine Linux采用了 musl libc 和 busybox以减小系统的体积和运行时资源消耗。

在保持瘦身的同时,Alpine Linux还提供了自己的包管理工具apk。

 

关键的是,相比于其他Linux的Docker镜像,它的容量非常小,仅仅只有5MB。

 

Alpine Linux的官网:

http://www.alpinelinux.org/

https://pkgs.alpinelinux.org/packages

 

2. 使用Alpine镜像

下面使用Alpine镜像,来制作nginx容器。

 

2.1 制作Dockerfile

Docker内容非常简单,基础镜像使用Alipine,用apk安装nginx,指定暴露的端口,启动nginx

1
2
3
4
5
6
7
8
9
10
11
# vi Dockerfile
 
FROM alpine:latest
MAINTAINER ee900222 ee900222@gmail.com
 
# install nginx
RUN apk --update add nginx
 
EXPOSE 80
 
CMD [ "nginx" "-g" "daemon off;" ]

 

2.2 用Dockerfile创建镜像

1
# docker build -t qinxue/nginx-t .

出现下面错误的时候,重启Docker可以解决。

1
ERROR: http: //dl-4 .alpinelinux.org /alpine/v3 .3 /main : temporary error (try again later)

 

2.3 用创建好的镜像启动容器

确认镜像信息

1
# docker images

可以看到,Alpine的镜像不到5MB,用Alpine作为基础镜像的nginx镜像不到7MB。

启动容器

1
# docker run --name da1 -d -p 81:80 qinxue/nginx-t

通过浏览器访问

3. 问题点

1. Alpine Linux使用了musl,可能和其他Linux发行版使用的glibc实现会有些不同。

2. musl实现的DNS服务不会使用resolv.conf文件中的search和domain两个配置,通过DNS来进行服务发现时需要注意。

4. 后记

Alpine Linux的最大优势是小,有消息说Docker官方镜像将会使用Alpine Linux替换Ubuntu。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值