用Alpine制作镜像
linux-dash
A beautiful web dashboard for Linux
项目地址:https://gitcode.com/gh_mirrors/li/linux-dash
免费下载资源
·
用Alpine制作镜像
参考:http://wiki.alpinelinux.org/wiki/Alpine_Linux_package_management
- 背景
- Alpine简介
- Alpine常用命令
- alpine包管理举例
- alpine私有仓库搭建
- Dockerfile用例
- 其他
背景
最近在公司制作镜像时,因保密问题,必须在内网完成,操作十分不方便,最开始只能在外网做好基础镜像之后,在通过文件中专站拷贝到内网,如果有问题再重新在外网制作,然后再转回内网,如此反复;另外在这个过程中遇到各种问题,下面列举出来然后各个击破,第一次写博文,不当之处请见谅
- 对apline的理解有误
- 安装某个工具时,通常会无法运行
- 使用系统默认的包安装源通常在内网无法正常工作
Alpine简介
Alpine Linux is a security-oriented, lightweight Linux distribution based on musl libc and busybox.
上面是官网给Alpine的一个定义,Alpine是一个只有5M大小的基础镜像,非常适合做对资源要求比较严苛的镜像, Alpine Linux Docker镜像基于Alpine Linux操作系统,后者是一个面向安全的轻型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私有仓库
- 从官方拉取alpine所有的包
wget -r -np -nH http://nl.alpinelinux.org/alpine/v3.5/main/x86_64/
wget -r -np -nH http://nl.alpinelinux.org/alpine/v3.5/community/x86_64/
- 下载后把源放到nginx的web目录下,直接可以访问,路径类似下面
http://your_host_ip/alpine/v3.5/main/x86_64/
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++,安装好之后,程序才能正常运行
GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e
added ecosystem file for PM2 4 年前
5def40a3
Add host customization support for the NodeJS version 4 年前
更多推荐
已为社区贡献2条内容
所有评论(0)