vmware 安装alpine-linux 虚拟机
Alpine Linux 是一个轻量级的 Linux 发行版,专注于安全、简约和效率。它的设计目标是提供一个小巧且安全的发行版,适合用作容器化、嵌入式系统以及基础设施的操作系统。
特点:
- 轻量级: Alpine Linux 以其小巧的体积著称,容器镜像通常较小,这有助于加快部署和镜像下载速度。
- 安全性: Alpine Linux 采用了一些安全性增强措施,例如默认启用了堆栈保护(stack protection)、位置无关执行(Position Independent Executables)等。
- 包管理: 使用名为APK(Alpine Package Keeper)的包管理工具,可以快速安装、升级和删除软件包。
- musl libc: Alpine Linux 默认使用 musl libc 作为其 C 库,而不是传统的 glibc。musl libc 旨在提供更小巧、简洁和安全的C库。
- Docker镜像: 由于其轻量级和安全性,Alpine Linux经常被用作Docker容器的基础镜像。
用途:
- 容器化: 由于其小巧、安全的特性,Alpine Linux 经常被用于容器化应用程序,作为Docker容器的基础镜像。
- 嵌入式系统: 适合用作嵌入式系统的基础操作系统,尤其是一些资源有限的设备或嵌入式系统。
- 服务器基础设施: 可以作为服务器的操作系统使用,尤其是在需要快速部署和高安全性要求的环境下。
镜像下载地址:https://alpinelinux.org/downloads/
虚拟机安装版本:https://dl-cdn.alpinelinux.org/alpine/v3.13/releases/x86_64/alpine-virt-3.13.5-x86_64.iso
alpine-virt 是虚拟化专用版本标识。
VMWARE 安装指引
新建一台虚拟机,类型选Linux,版本选择其它 Linux 3.x 64位,磁盘大小选择系统默认的8G,其它选项同平时安装centos 系统。
首次登入用root 用户,无需输入密码。进去后根据提示输入setup-alpine,开始安装;Select keyboard layout [none]: 是选择键盘布局,系统默认给你选了none,输入两次cn表示中文
Enter system hostname (short form, e.g. ‘foo’) [localhost] 选择虚拟机host名称,系统给你选了localhost,没有特殊需要的话直接回车;
Which one do you want to initialize? (or ‘?’ or ‘done’) [eth0]设置网卡类型,默认eth0直接回车即可;
Ip address for eth0? (or ‘dhcp’, ‘none’, ‘?’) [dhcp]
输入eth0网卡的IP地址,或者直接通过dhcp协议自动获取IP,系统默认dhcp,直接回车即可;
Do you want to do any manual network configuration? [no]
还需要手工修改网卡的其他配置吗?系统给你选了no,直接回车
Changeing password for root
New password:
设置root密码
Retype Password:
再次输入一遍密码
// Which timezone are you in? (’?’ for list) [UTC]
国内输入PRC也可以输入“Asia/Shanghai” ;
HTTP/FTP proxy URL? (e.g. ‘http://proxy:8080’, or ‘none’) [none]
输入网络代理,回车即可。
Which NTP client to run? (‘busybox’, ‘openntpd’, ‘chorony’ or ‘none’) [chrony]
选择none比较快,回车
Enter mirror number (1-21) or URL to add (or r/f/e/done) [f]
选择源,r是代表随机指定一个源,f是是自动检测速度最快的源,e是是编辑系统对应文件。
这里我们选择一个中文的域名以 .cn 结尾的国内源都可以,也可以输入e 自行编辑。
Which SSH server? (‘openssh’, ‘dropbear’ or ‘none’) [openssh]
SSH服务器(用于登录Linux)有两种可供选择,默认选择openssh,回车;
Which disk(s) would you like to use? (or ‘?’ for help or ‘none’) [none] sda
选择一块磁盘,名称sda
How would you like to use it? (‘sys’, ‘data’, ‘lvm’ or ‘?’ for help) [?] sys
输入sys,格式化为系统盘
WARNING: Erase the above disk(s) and continue? [y/N]: y
输入y确认格式化,等待格式化成功即可,这里不格式化sda 盘系统不可用,格式化时间有点长,耐心等待即可。
配置安装包源、ssh远程服务
这里以配置阿里云源为例:
vi /etc/apk/repositories
https://mirrors.aliyun.com/alpine/
https://mirrors.aliyun.com/alpine/latest-stable/community/
https://mirrors.aliyun.com/alpine/latest-stable/main/
实际还可以使用
中科大:http://mirrors.ustc.edu.cn/alpine/
https://mirrors.ustc.edu.cn/alpine/v3.6/main/
https://mirrors.ustc.edu.cn/alpine/v3.6/community/
清华大学:https://mirror.tuna.tsinghua.edu.cn/alpine/
https://mirror.tuna.tsinghua.edu.cn/alpine/latest-stable/
https://mirror.tuna.tsinghua.edu.cn/alpine/last-updated
配置ssh 远程登录(更改远程登录权限配置
vi /etc/ssh/sshd_config
#PermitRootLogin prohibit-password 去掉注释,更改为:PermitRootLogin yes,更改后如下。
#LoginGraceTime 2m
PermitRootLogin yes
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10
Alpine linux包管理
1、apk update
apk update // 更新最新镜像源列表
2、 apk search
apk search // 查找所有可用软件包
apk search -v // 查找所用可用软件包及其描述内容
apk search -v ‘包名’ // 通过软件包名称查找软件包
apk search -v -d ‘docker’ // 通过描述文件查找特定的软件包
3、apk add
apk add openssh // 安装一个软件
apk add openssh openntp vim // 安装多个软件
apk add --no-cache mysql-client // 不使用本地镜像源缓存,相当于先执行update,再执行add
4、apk info
apk info // 列出所有已安装的软件包
apk info -a zlib // 显示完整的软件包信息
apk info --who-owns /sbin/lbu // 显示指定文件属于的包
5、apk upgrade
apk upgrade // 升级所有软件
apk upgrade openssh // 升级指定软件
apk upgrade openssh openntp vim // 升级多个软件
apk add --upgrade busybox // 指定升级部分软件包
6、apk删除一个软件
apk del openssh // 删除一个软件
Alpine Linux服务管理
rc-update // 主要用于不同运行级增加或者删除服务。
rc-status // 主要用于运行级的状态管理。
rc-service // 主用于管理服务的状态
openrc // 主要用于管理不同的运行级。
重启网络服务: rc-service networking restart
列出所有服务: rc-status -a
常用命令的使用:
apk add vim // 安装vim命令
(1/3) Installing xxd (8.2.3650-r0)
(2/3) Installing lua5.3-libs (5.3.6-r1)
(3/3) Installing vim (8.2.3650-r0)
Executing busybox-1.34.1-r3.trigger
OK: 885 MiB in 156 packages
apk add --no-cache openssh // 不使用本地镜像源缓存,相当于先执行update,再执行add
localhost:~# apk del openssh //卸载软件包
WARNING: Ignoring https://mirrors.aliyun.com/alpine/: No such file or directory
(1/8) Purging openssh (8.8_p1-r1)
(2/8) Purging openssh-sftp-server (8.8_p1-r1)
(3/8) Purging openssh-server (8.8_p1-r1)
(4/8) Purging openssh-server-common (8.8_p1-r1)
(5/8) Purging openssh-client-default (8.8_p1-r1)
(6/8) Purging openssh-client-common (8.8_p1-r1)
(7/8) Purging openssh-keygen (8.8_p1-r1)
(8/8) Purging libedit (20210910.3.1-r0)
Executing busybox-1.34.1-r3.trigger
OK: 881 MiB in 150 packages
localhost:~# apk search -v 'gcc' //通过软件包名称查找软件包
WARNING: Ignoring https://mirrors.aliyun.com/alpine/: No such file or directory
gcc-zsh-completion-5.6.2-r0 - Zsh completions for gcc
gcc-8.3.0-r0 - The GNU Compiler Collection
gcc-objc-8.3.0-r0 - GNU Objective-C
gcc-gnat-8.3.0-r0 - Ada support for GCC
libgc++-7.6.4-r2 - A garbage collector for C and C++
gcc-doc-8.3.0-r0 - The GNU Compiler Collection (documentation)
libgcc-8.3.0-r0 - GNU C compiler runtime libraries
localhost:~# apk info gcc // 列出安装已安装软件包的信息
WARNING: Ignoring https://mirrors.aliyun.com/alpine/: No such file or directory
gcc-8.3.0-r0 description:
The GNU Compiler Collection
gcc-8.3.0-r0 webpage:
http://gcc.gnu.org
gcc-8.3.0-r0 installed size:
72 MiB
localhost:~# apk upgrade gcc //升级指定的软件
fetch https://mirrors.aliyun.com/alpine/x86_64/APKINDEX.tar.gz
ERROR: https://mirrors.aliyun.com/alpine/: No such file or directory
WARNING: Ignoring https://mirrors.aliyun.com/alpine/: No such file or directory
OK: 881 MiB in 150 packages
localhost:~# rc-service apache2 restart // 重启apache服务
* Starting apache2 ...
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using ::1. Set the 'ServerName' directive globally to suppress this message
localhost:~# rc-update add apache2 boot //将apache服务设置开机自启
* service apache2 added to runlevel boot
// 创建用户
localhost:~# addgroup -g 10001 -S admin //先指定一个GID组
localhost:~# adduser admin -u 20001 -D -S -s /bin/bash -G admin //指定一个UID的用户,指定shell,让其属于指定的用户组
localhost:~# deluser admin // 删除用户