博主最近在玩Docker,因为Docker开始对 Alpine Linux 系统产生一些兴趣,Docker 与 Alpine 的关系在我看来是互相成就彼此,下面的内容主要是关于 Alpine 常用的一些命令及用法,差不多可以满足我的日常需求了。
了解 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 做为基础镜像环境。这样会带来多个好处。包括镜像下载速度加快,镜像安全性提高,主机之间的切换更方便,占用更少磁盘空间等。
一:Alpine Linux开启SSH远程登陆
1.简介:
最重要的一个服务了,远程登陆需要用它,文件传输需要用它,必备功能。不管你是在实体机上跑,虚拟机上跑,docker里面跑,这个都是必须的。
2.配置
配置文件位置:/etc/ssh/sshd_config
配置文件选项:#PermitRootLogin prohibit-password
修改为:PermitRootLogin yes
3.配置命令
看不懂上面的,直接用下面这句。
sed -i "s/#PermitRootLogin.*/PermitRootLogin yes/g" /etc/ssh/sshd_config
4.重启服务
改了配置不会直接生效,需要重启服务器或者服务。
重启服务器:reboot
重启服务:rc-service sshd restart
二:Alpine Linux源管理
1.简介
源这个概念在linux早就存在了,其实就是类似于软件市场的存在,apple在iphone上发扬光大了,并且自己管理安全的软件,使得iphone上软件兼容性等等问题得到改善,用户体验比较好,android基于linux核心开发,也有了软件市场,最著名的就是google市场,因为被墙,所以国内各个大软件厂商也都有了自己的市场。
每个市场(源)都有自己的服务器,linux默认的都是外国的服务器,我们访问比较慢,所以就有了镜像服务器放在国内,让我们访问快一些。管理源,就是增加镜像服务器。
而且,linux因为是大众维护更新代码,所以还区分了稳定版,测试版……各种版本的市场,这些都需要进行源管理。
2.国内源简介:
这几个都有alpine的源
清华大学:https://mirror.tuna.tsinghua.edu.cn/alpine/
阿里云:https://mirrors.aliyun.com/alpine/
中科大:http://mirrors.ustc.edu.cn/alpine/
还有一些没有alpine的
网易:http://mirrors.163.com/
3.配置:
直接抄中科大的帮助http://mirrors.ustc.edu.cn/help/alpine.html
一般情况下,将 /etc/apk/repositories
文件中 Alpine 默认的源地址 http://dl-cdn.alpinelinux.org/
替换为 http://mirrors.ustc.edu.cn/
即可。
可以使用如下命令:
sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories
也可以直接编辑 /etc/apk/repositories
文件。以下是 v3.5 版本的参考配置:
https://mirrors.ustc.edu.cn/alpine/v3.5/main
https://mirrors.ustc.edu.cn/alpine/v3.5/community
也可以使用 latest-stable
指向最新的稳定版本:
https://mirrors.ustc.edu.cn/alpine/latest-stable/main
https://mirrors.ustc.edu.cn/alpine/latest-stable/community
更改完 /etc/apk/repositories
文件后请运行 apk update
更新索引以生效。
3.我的配置:
打开/etc/apk/repositories后发现,中科大的sed命令无效,因为默认的源不是dl-cdn
自己改一下吧
原:
#/media/cdrom/apks
http://ftp.halifax.rwth-aachen.de/alpine/v3.7/main
#http://ftp.halifax.rwth-aachen.de/alpine/v3.7/community
#http://ftp.halifax.rwth-aachen.de/alpine/edge/main
#http://ftp.halifax.rwth-aachen.de/alpine/edge/community
#http://ftp.halifax.rwth-aachen.de/alpine/edge/testing
http://mirror.yandex.ru/mirrors/alpine/v3.7/main
#http://mirror.yandex.ru/mirrors/alpine/v3.7/community
#http://mirror.yandex.ru/mirrors/alpine/edge/main
#http://mirror.yandex.ru/mirrors/alpine/edge/community
#http://mirror.yandex.ru/mirrors/alpine/edge/testing
改为:
http://mirrors.ustc.edu.cn/alpine/v3.7/main
http://mirrors.ustc.edu.cn/alpine/v3.7/community
http://mirrors.ustc.edu.cn/alpine/edge/main
http://mirrors.ustc.edu.cn/alpine/edge/community
http://mirrors.ustc.edu.cn/alpine/edge/testing
也可以复制下面这组命令,一次执行
echo http://mirrors.ustc.edu.cn/alpine/v3.7/main >/etc/apk/repositories
echo http://mirrors.ustc.edu.cn/alpine/v3.7/community >>/etc/apk/repositories
echo http://mirrors.ustc.edu.cn/alpine/edge/main >>/etc/apk/repositories
echo http://mirrors.ustc.edu.cn/alpine/edge/community >>/etc/apk/repositories
echo http://mirrors.ustc.edu.cn/alpine/edge/testing >>/etc/apk/repositories
或者
echo 'http://mirrors.ustc.edu.cn/alpine/v3.7/main
http://mirrors.ustc.edu.cn/alpine/v3.7/community
http://mirrors.ustc.edu.cn/alpine/edge/main
http://mirrors.ustc.edu.cn/alpine/edge/community
http://mirrors.ustc.edu.cn/alpine/edge/testing' >/etc/apk/repositories
三:Alpine Linux 包管理
1.简介
Alpine使用apk
进行包管理,下面介绍常用命令
2.apk update
apk update #更新最新镜像源列表
3.apk search
apk search #查找所以可用软件包
apk search -v #查找所以可用软件包及其描述内容
apk search -v 'acf*' #通过软件包名称查找软件包
apk search -v -d 'docker' #通过描述文件查找特定的软件包
4.apk add
apk add openssh #安装一个软件
apk add openssh openntp vim #安装多个软件
apk add --no-cache mysql-client #不使用本地镜像源缓存,相当于先执行update,再执行add
5.apk info
apk info #列出所有已安装的软件包
apk info -a zlib #显示完整的软件包信息
apk info --who-owns /sbin/lbu #显示指定文件属于的包
6.apk upgrade
apk upgrade #升级所有软件
apk upgrade openssh #升级指定软件
apk upgrade openssh openntp vim #升级多个软件
apk add --upgrade busybox #指定升级部分软件包
7.apk del
apk del openssh #删除一个软件
四:Alpine Linux服务管理
1.简介
alpine没有使用fedora的systemctl
来进行服务管理,使用的是RC
系列命令
2.rc-update
rc-update
主要用于不同运行级增加或者删除服务。
alpine:~# rc-update --help
Usage: rc-update [options] add <service> [<runlevel>...]
or: rc-update [options] del <service> [<runlevel>...]
or: rc-update [options] [show [<runlevel>...]]
Options: [ asuChqVv ]
-a, --all Process all runlevels
-s, --stack Stack a runlevel instead of a service
-u, --update Force an update of the dependency tree
-h, --help Display this help output
-C, --nocolor Disable color output
-V, --version Display software version
-v, --verbose Run verbosely
-q, --quiet Run quietly (repeat to suppress errors)
3.rc-status
rc-status 主要用于运行级的状态管理。
alpine:~# rc-status --help
Usage: rc-status [options] <runlevel>...
or: rc-status [options] [-a | -c | -l | -m | -r | -s | -u]
Options: [ aclmrsuChqVv ]
-a, --all Show services from all run levels
-c, --crashed Show crashed services
-l, --list Show list of run levels
-m, --manual Show manually started services
-r, --runlevel Show the name of the current runlevel
-s, --servicelist Show service list
-u, --unused Show services not assigned to any runlevel
-h, --help Display this help output
-C, --nocolor Disable color output
-V, --version Display software version
-v, --verbose Run verbosely
-q, --quiet Run quietly (repeat to suppress errors)
4.rc-service
rc-service主用于管理服务的状态
alpine:~# rc-service --help
Usage: rc-service [options] [-i] <service> <cmd>...
or: rc-service [options] -e <service>
or: rc-service [options] -l
or: rc-service [options] -r <service>
Options: [ ce:ilr:INChqVv ]
-e, --exists <arg> tests if the service exists or not
-c, --ifcrashed if the service is crashed then run the command
-i, --ifexists if the service exists then run the command
-I, --ifinactive if the service is inactive then run the command
-N, --ifnotstarted if the service is not started then run the command
-l, --list list all available services
-r, --resolve <arg> resolve the service name to an init script
-h, --help Display this help output
-C, --nocolor Disable color output
-V, --version Display software version
-v, --verbose Run verbosely
-q, --quiet Run quietly (repeat to suppress errors)
5.openrc
openrc主要用于管理不同的运行级。
alpine:~# openrc --help
Usage: openrc [options] [<runlevel>]
Options: [ a:no:s:SChqVv ]
-n, --no-stop do not stop any services
-o, --override <arg> override the next runlevel to change into
when leaving single user or boot runlevels
-s, --service <arg> runs the service specified with the rest
of the arguments
-S, --sys output the RC system type, if any
-h, --help Display this help output
-C, --nocolor Disable color output
-V, --version Display software version
-v, --verbose Run verbosely
-q, --quiet Run quietly (repeat to suppress errors)
6.我常用的RC系列命令
1.增加服务到系统启动时运行,下例为docker
rc-update add docker boot
2.重启网络服务
rc-service networking restart
3.列出所有服务
rc-status -a
五:关机重启
$ reboot #重启系统
$ poweroff #关机
相关资源
- Alpine 官网:http://alpinelinux.org/
- Alpine 官方仓库:https://github.com/alpinelinux
- Alpine 官方镜像:https://hub.docker.com/_/alpine/
- Alpine 官方镜像仓库:https://github.com/gliderlabs/docker-alpine
相关推荐
- 使用 Autofs 实现 NFS 共享目录动态挂载
- LFTP 命令常见用法详解
- macOS 使用 Setfile 命令更改文件创建时间和修改时间
- Ubuntu/Debian 系统安装配置 UFW 简单防火墙
- CentOS 7 安装使用 iptables 防火墙方法介绍
- Linux 服务器配置密钥实现远程免密登录
文章作者:喵斯基部落
原文地址:https://www.moewah.com/archives/2198.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。非商业转载及引用请注明出处(作者、原文链接),商业转载请联系作者获得授权。