Docker系列之(三):Docker微容器Alpine Linux
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。
专注服务器运维十八年,欢迎技术上的交流。微信:ee900222 QQ:176539854
分类:
Docker
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)