Docker之操作系统Alpine

Alpine 操作系统是一个面向安全的轻型 Linux 发行版。它不同于通常 Linux 发行版,Alpine 采用了 musl libc 和 busybox 以减小系统的体积和运行时资源消耗,但功能上比 busybox 又完善的多,因此得到开源社区越来越多的青睐。在保持瘦身的同时,Alpine 还提供了自己的包管理工具 apk,可以通过 https://pkgs.alpinelinux.org/packages 网站上查询包信息,也可以直接通过 apk 命令直接查询和安装各种软件。

Alpine 由非商业组织维护的,支持广泛场景的 Linux发行版,它特别为资深/重度Linux用户而优化,关注安全,性能和资源效能。Alpine 镜像可以适用于更多常用场景,并且是一个优秀的可以适用于生产的基础系统/环境。

Alpine Docker 镜像也继承了 Alpine Linux 发行版的这些优势。相比于其他 Docker 镜像,它的容量非常小,仅仅只有 5 MB 左右(对比 Ubuntu 系列镜像接近 200 MB),且拥有非常友好的包管理机制。官方镜像来自 docker-alpine 项目。

目前 Docker 官方已开始推荐使用 Alpine 替代之前的 Ubuntu 做为基础镜像环境。这样会带来多个好处。包括镜像下载速度加快,镜像安全性提高,主机之间的切换更方便,占用更少磁盘空间等。

下表是官方镜像的大小比较:

REPOSITORY TAG IMAGE ID VIRTUAL SIZE
alpine latest 4e38e38c8ce0 4.799 MB
debian latest 4d6ce913b130 84.98 MB
ubuntu latest b39b81afc8ca 188.3 MB
centos latest 8efe422e6104 210 MB
获取并使用官方镜像
由于镜像很小,下载时间往往很短,读者可以直接使用 docker run 指令直接运行一个 Alpine 容器,并指定运行的 Linux 指令,例如:

$ docker run alpine echo ‘123’
123
迁移至 Alpine 基础镜像
目前,大部分 Docker 官方镜像都已经支持 Alpine 作为基础镜像,可以很容易进行迁移。

例如:

ubuntu/debian -> alpine
python:2.7 -> python:2.7-alpine
ruby:2.3 -> ruby:2.3-alpine
另外,如果使用 Alpine 镜像替换 Ubuntu 基础镜像,安装软件包时需要用 apk 包管理器替换 apt 工具,如

$ apk add –no-cache

$ echo “http://dl-4.alpinelinux.org/alpine/edge/testing” >> /etc/apk/repositories
$ apk –update add –no-cache

安装软件包apk
apk 相当于 yum
用法:apk[…]命令[…]
apk add –no-cache -U
add:安装 –no-cache:不使用缓存 -U:更新缓存

apk update 更新

apk update #更新最新镜像源列表
1
apk search 查找

apk search #查找所以可用软件包
apk search -v #查找所以可用软件包及其描述内容
apk search -v ‘acf*’ #通过软件包名称查找软件包
apk search -v -d ‘docker’ #通过描述文件查找特定的软件包

apk add 安装

apk add openssh #安装一个软件
apk add openssh openntp vim #安装多个软件
apk add –no-cache -U apache2 #不使用本地镜像源缓存,相当于先执行update,再执行add

apk info 查看已安装

apk info #列出所有已安装的软件包
apk info -a zlib #显示完整的软件包信息
apk info –who-owns /sbin/lbu #显示指定文件属于的包

apk upgrade 升级

apk upgrade #升级所有软件
apk upgrade openssh #升级指定软件
apk upgrade openssh openntp vim #升级多个软件
apk add –upgrade busybox #指定升级部分软件包

apk del 卸载

apk del openssh #删除一个软件

add: 相当于install
del: 相当于remove

用于文本方式查看网页,用于测试http协议

apk add curl
1
创建用户和组

//创建用户
adduser
-h #创建家目录
-g #用户的详细信息
-s #登录shell
-G #组
-S #创建系统用户
-D #不分配密码
-H #不创建家目录
-u #UID
-k #创建框架目录

//删除用户
deluser xxx

查看系统版本

[root@localhost ~]# docker run -it –rm alpine /bin/sh
/ # cat /etc/issue
Welcome to Alpine Linux 3.15
Kernel \r on an \m (\l)

配置apk源

sed -i ‘s/dl-cdn.alpinelinux.org/mirrors.aliyun.com/’ /etc/apk/repositories

apk update

alpine服务管理工具

查看所有服务
rc-service –list

添加开机自启动
rc-update add {service-name}

开启SSH服务

//安装openssh-server服务器
apk add openssh-server

//修改配置文件/etc/ssh/sshd_config
如果要想使用root用户远程管理,需要修改参数为:
PermitRootLogin yes

//将ssh服务配置为开机自动启动
rc-update add sshd

//如果你想立刻生效,可以执行命令
/etc/init.d/sshd restart

设置时区

apk add tzdata
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
echo “Asia/Shanghai” > /etc/timezone
————————————————
参考链接:https://blog.csdn.net/W_LTCY/article/details/121901862

Original: https://www.cnblogs.com/youxin/p/16182107.html
Author: youxin
Title: Docker之操作系统Alpine

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/534130/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球