Loading... ## 前言 最近有朋友问 Mark 一些构建 Docker 方面的问题,自然说到镜像优化方面的东西,索性就聊一下 `Alpine` (高山)。 ## 介绍 Alpine Linux 是一款独立的、非商业的通用 Linux 发行版,专为追求安全性、简单性和资源效率的用户而设计。 可能很多人没听说过这个 Linux 发行版本,但是经常用 `Docker` 的朋友可能都用过,因为他因 小,简单,安全而著称,所以作为基础镜像是非常好的一个选择,可谓是麻雀虽小但五脏俱全,简直不要太方便,镜像非常小巧,不到 `6M` 的大小,所以特别适合容器打包。 ## 容器体验 Alpine 使用命令 ``` docker run -it alpine /bin/sh ``` 可运行 Alpine Linux,由于 Alpine Linux 没有内置`bash`,所以这里使用的`sh`作为伪终端,在为 Alpine Linux 编写 shell 脚本的时候也需要注意,使用 `sh` 而不是`bash`。 ## Esxi安装Alpine 打开官网(https://alpinelinux.org/downloads/),找到合适你期望平台的镜像下载,默认就是向x86_64镜像。虚拟机可以用虚拟机专用的镜像。 ![image.png](https://imgki.com/usr/uploads/2022/02/887434692.png) ### **setup-alpine** 不管是刻录U盘还是在虚拟机里启动,进入终端之后,输入root默认无密登陆,然后执行”setup-alpine”[命令](https://www.linuxcool.com/),在终端上启动他的安装程序。 ![image.png](https://imgki.com/usr/uploads/2022/02/1783677064.png) 之后一路Enter ### 选择国内源 这里如果联网了,输入”f”回车,让程序自动匹配当前最快的软件源。可能会花一点时间。尽量不要跳过,因为后面格式化硬盘的时候需要联网安装相关的[命令](https://www.linuxcool.com/)。 ![image.png](https://imgki.com/usr/uploads/2022/02/730333743.png) ### 安装在磁盘 这里碰到很多坑,一定要注意选择安装在磁盘,不能再回车了 ![image.png](https://imgki.com/usr/uploads/2022/02/1526486167.png) ## 软件管理 Alpine Linux 使用`apk`指令来管理软件,类似 CentOS 的`yum`或 Debian 的`apt-get`,首次使用建议用`apk update`更新下软件,以免无法正常使用。apk 的常用指令如下: ```bash hljs #更新软件 apk update #搜索某个软件 apk search xxx #安装软件 apk add xxx #卸载软件 apk del xxx #查看使用帮助 apk -h ``` ## 设置时区 Alpine 时区非东八区,某些项目需要和北京时间保持同步,因此我们需要对默认时区做出修改,方法如下: ```bash hljs #安装timezone apk add -U tzdata #查看时区列表 ls /usr/share/zoneinfo #拷贝需要的时区文件到localtime cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #查看当前时间 date #为了精简镜像,可以将 tzdata 删除了 apk del tzdata ``` ## 修改软件源 如果是国内网络使用 Alpine,可以使用国内镜像源,这样速度更加理想,常用的国内镜像源如下: * 清华TUNA镜像源:[https://mirrors.tuna.tsinghua.edu.cn/alpine/](https://mirrors.tuna.tsinghua.edu.cn/alpine/) * 中科大镜像源:[http://mirrors.ustc.edu.cn/alpine/](http://mirrors.ustc.edu.cn/alpine/) * 阿里云镜像源:[http://mirrors.aliyun.com/alpine/](http://mirrors.aliyun.com/alpine/) 软件源的配置文件位于`/etc/apk/repositories`,内容如下: ```bash hljs http://dl-cdn.alpinelinux.org/alpine/v3.11/main http://dl-cdn.alpinelinux.org/alpine/v3.11/community ``` 可以看到这里使用的 Alpine 软件源版本为`v3.11`,所以我们在修改的时候需要版本保持一致,比如修改为阿里的软件源: ```bash hljs http://mirrors.aliyun.com/alpine/v3.11/main http://mirrors.aliyun.com/alpine/v3.11/community ``` 更多软件源可参考官方列表:[](https://mirrors.alpinelinux.org/)[https://mirrors.alpinelinux.org/](https://mirrors.alpinelinux.org/) # 设置ssh登录 ```bash #打开ssh配置文件 vi /etc/ssh/sshd_config #设置允许登录 PermitRootLogin yes #重启ssh服务 service sshd restart ``` ## 结语 Alpine 官方网站:[https://www.alpinelinux.org](https://www.alpinelinux.org/) Alpine PKGS:[https://pkgs.alpinelinux.org/packages](https://pkgs.alpinelinux.org/packages) Alpine Linux 体积非常小巧,但功能不输其它 Linux 发行版,非常适合用来打包Docker镜像,在 DockerHub 搜索镜像的时候您会发现很多都是基于 Alpine Linux,简直就是天生为容器所准备。 <div class="tip inlineBlock share"> 部分引用自:https://www.quchao.net/Alpine.html </div> Last modification:February 9, 2022 © Allow specification reprint Like 如果觉得我的文章对你有用,请随意赞赏