Alpine 系统配置记录
[TOC]
0x00 快速入门
Alpine 的意思是“高山的”,比如 Alpine plants高山植物,Alpine skiing高山滑雪、the alpine resort阿尔卑斯山胜地。
Alpine linux 它是基于 uClibc 和 Busybox 开发的目的是以减小系统的体积和运行时资源消耗,在保持瘦身的同时Alpine Linux还提供了自己的包管理工具apk,可以在其网站上查询或者直接通过apk命令查询和安装。
官网:https://wiki.alpinelinux.org/wiki/Alpine_Linux_package_management 软件包搜寻:https://pkgs.alpinelinux.org/packages
Alpine特点:
- 小巧:基于Musl libc和busybox和busybox一样小巧最小的Docker镜像只有5MB
- 安全:面向安全应用的轻量级Linux发行版
- 简单:提供APK包管理工具,软件的搜索、安装、删除、升级都非常方便。
WeiyiGeek.镜像大小
Alpine应用:
- 适合容器使用:由于小巧、功能完备,非常适合作为容器的基础镜像,Alpine Linux Docker镜像基于Alpine Linux操作系统
- 适合用来做Docker镜像、路由器、防火墙、VoIP 盒子 以及服务器的操作系统
Alpine安装: alpine Linux是一个完整的操作系统,像其他操作系统一样可以将Alpine安装到本地硬盘中 安装过程:http://blog.csdn.net/csdn_duomaomao/article/details/76053229
注意事项:
- 因为 Alpine 和 Ubuntu 不是一个社区进行维护,所以软件包很多名称是不同的,这里我直接提供我已经查找修改完毕的镜像文件。
- alpine 的 c 库是
musl libc
而不是正统的glibc
,另外对于一些依赖 glibc 的大型项目,像openjdk 、tomcat、rabbitmq
等都不建议使用 alpine 基础镜像,因为musl libc 可能会导致 jvm 一些奇怪的问题
, 这也是为什么 tomcat 官方没有给出基础镜像是 alpine 的 Dockerfile 的原因。
0x01 Alpine的配置和使用
1.网络相关文件 网络相关的文档,详细参见:https://wiki.alpinelinux.org/wiki/Configure_Networking
#主机名文件
/etc/hostname
#使用新设置的主机名立刻生效,执行如下命令:
hostname -F /etc/hostname
#主机IP和域名映射文件
/etc/hosts
#文件内容为:
192.168.99.100 alpine.csdn.net
#DNS 服务器配置文件
/etc/resolv.conf
#文件内容为:
nameserver 218.2.135.1
nameserver 202.102.24.35
#网卡配置文件
/etc/network/interfaces
#文件内容为:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.3.166
netmask 255.255.255.0
gateway 192.168.3.254
#修改完相关配置以后,重新启动网络服务:
/etc/init.d/networking restart
2.软件源配置: 官方镜像源:https://mirrors.alpinelinux.org/ 清华TUNA镜像源:https://mirror.tuna.tsinghua.edu.cn/alpine/ 中科大镜像源:http://mirrors.ustc.edu.cn/alpine/ 阿里云镜像源:http://mirrors.aliyun.com/alpine/
#Step1.更改源
$ vi /etc/apk/repositories
# /media/cdrom/apks
echo "http://mirrors.ustc.edu.cn/alpine/v3.10/main" > /etc/apk/repositories
echo "http://mirrors.ustc.edu.cn/alpine/v3.10/community">> /etc/apk/repositories
echo "http://dl-4.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories
#2.更新与安装源
#alpine 提供了非常好用的apk软件包管理工具,
apk search openssh #查询openssh相关的软件包
apk update #更新最新本地镜像源
apk add [software] #安装软件
apk add php7 --repository http://nl.alpinelinux.org/alpine/edge/testing/
apk info [exsit_software] #显示已安装的软件
#drill 命令可以替代dig和nslookup DNS查询命令
apk add drill
注意: Alpine中软件安装包的名字可能会与其他发行版有所不同,可以在 https://pkgs.alpinelinux.org/packages 网站搜索并确定安装包的名称
3.开启SSH服务
#安装openssh-server服务器
apk add openssh-server
#修改配置文件 /etc/ssh/sshd_config,
#如果要想使用root用户远程管理,需要修改参数为:
PermitRootLogin yes
#将ssh服务配置为开机自动启动
rc-update add sshd
#如果你想立刻生效,可以执行命令:
/etc/init.d/sshd restart
注意事项: 因为Alpine采用的是musl libc不是通常用的glibc,在使用DNS时Alpine(musl libc)在DNS解析文件/etc/resolv.conf中,不使用domain或search选项。 在使用DNS作为服务发现时要查看相应的文档来解决相关链接:http://gliderlabs.viewdocs.io/docker-alpine/caveats/
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Python知识点
- 上盘硬菜,@Transaction源码深度解析 | Spring系列第48篇
- Python--网络编程和并发
- HashMap常见问题(更新中)
- 使用SNVSniffer软件找somatic mutation
- 腾讯云cvm 内存使用率监控指标解读
- Redis常见面试题
- 使用MuSE软件找somatic mutation
- vivo 基于原生 RabbitMQ 的高可用架构实践
- 数据库锁
- 现在单细胞还想“水”CNS恐怕得多组学了
- 7个处理JavaScript值为undefined的技巧
- Python高级知识点
- 三阴性乳腺癌表达矩阵探索之数据下载及理解
- 6种展示代码的工具,你学会了吗?