用Alpine制作镜像

参考:http://wiki.alpinelinux.org/wiki/Alpine_Linux_package_management

  • 背景
  • Alpine简介
  • Alpine常用命令
  • alpine包管理举例
  • alpine私有仓库搭建
  • Dockerfile用例
  • 其他

背景

最近在公司制作镜像时,因保密问题,必须在内网完成,操作十分不方便,最开始只能在外网做好基础镜像之后,在通过文件中专站拷贝到内网,如果有问题再重新在外网制作,然后再转回内网,如此反复;另外在这个过程中遇到各种问题,下面列举出来然后各个击破,第一次写博文,不当之处请见谅

  1. 对apline的理解有误
  2. 安装某个工具时,通常会无法运行
  3. 使用系统默认的包安装源通常在内网无法正常工作

Alpine简介

Alpine Linux is a security-oriented, lightweight Linux distribution based on musl libc and busybox.
上面是官网给Alpine的一个定义,Alpine是一个只有5M大小的基础镜像,非常适合做对资源要求比较严苛的镜像,<a href="https://github.com/gliderlabs/docker-alpine"> Alpine Linux Docker</a>镜像基于<a href="https://alpinelinux.org/">Alpine Linux</a>操作系统,后者是一个面向安全的轻型Linux发行版。不同于通常Linux发行版,Alpine Linux采用了musl libc和busybox以减小系统的体积和运行时资源消耗。在保持瘦身的同时,Alpine Linux还提供了自己的包管理工具apk,可以在其网站上查询,或者直接通过apk命令查询和安装。

Alpine常用命令

  • add 向运行中的系统添加包
  • del 删除运行中系统的包
  • fix 尝试修复或者升级已安装的包
  • update 更新可用包的索引
  • info 打印出已安装的包或者可用的安装包
  • search 通过通配符搜索包或者描述
  • upgrade 升级当前已安装的包
  • cache 维护本地缓存的包仓库
  • version 对比已安装和可用的包之间的不同之处
  • index 从包列表创建仓库的索引
  • fetch 下载但不安装包
  • audit 从原始包安装状态向文件系统列表更改
  • verify 验证包签名

alpine包管理举例

  • 添加安装包
# 安装docker包
apk add docker
# 指定安装源
apk add -update-cache --repository http://dl-3.alpinelinux.org/alpine/edge/testing/ --allow-untrusted
  • 删除安装包
# 删除docker包
apk del docker
  • 升级包
#升级单个包
apk update && apk add --upgrade busybox
# 升级整个系统
apk update && apk upgrade
  • 搜索安装包
#列出所有包含通配符abd可用的包,以及它们的描述
apk search -v 'abd'
  • 列出已安装包
#列出所有包含通配符abd可用的包,以及它们的描述
apk info -a zlib

搭建alpine私有仓库

Dockerfile举例

FROM alpine:3.5

MAINTAINER XXX XX@sina.com

#解决内网无法正常使用仓库的问题
 RUN echo "https://your_host_ip/alpine/v3.5/main"  /etc/apk/repositories \
    && echo "https://your_host_ip/alpine/v3.5/community" >> /etc/apk/repositories 
    
#更新并升级包列表
RUN apk update 

#升级整个系统的所有包
RUN apk upgrade

#从源安装最小镜像所需的包
RUN apk add docker openjdk8-jre-base


#从本地添加安装包安装包
ADD file.apk /path/to/file.apk
#--allow-untrusted 本地安装文件可以放宽认证
RUN apk add --allow-untrusted /path/to/file.apk
# 安装多个本地包
apk add --allow-untrusted /var/tig-2.2-r0.apk /var/git-2.11.1-20.apk

其他

通常建议搭建最好安装一些常用的包,比如g++, gcc,在制作一个自动部署工具的镜像时,运行环境已经能正常运行,但是始终报错找不到文件,后面发现是少了g++,安装好之后,程序才能正常运行

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,099评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,828评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,540评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,848评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,971评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,132评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,193评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,934评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,376评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,687评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,846评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,537评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,175评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,887评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,134评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,674评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,741评论 2 351

推荐阅读更多精彩内容