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/
- 【腾讯云的1001种玩法】十分钟搞定云架构 · 什么是Bucket、什么是Object
- 【腾讯云的1001种玩法】十分钟轻松搞定云架构 · 负载均衡的最佳实践
- 【黑客浅析】像黑客一样思考
- 【腾讯云的1001种玩法】 十分钟轻松搞定云架构 · 负载均衡的几种均衡模式
- ASP.NET Web API的Controller是如何被创建的?
- 【腾讯云的1001种玩法】十分钟轻松搞定云架构:COS的两种上传模式
- 物流行业迎变革,云计算是基础,大数据是关键
- Socket学习总结系列(二) -- CocoaAsyncSocket
- 比特币勒索病毒肆虐,腾讯云安全专家给你支招
- HTML5 直播协议之 WebSocket 和 MSE
- IoC在ASP.NET Web API中的应用
- 跟鹅厂老司机学技术之一:“遇见” Kotlin
- 简单的 H5 视频推流解决方案
- 来腾讯云开发者实验室学习.NET
- 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 数组属性和方法
- PL/SQL 数据库连接工具的下载、安装与使用实例演示
- JavaScript 技术篇-JSON字符串在线快速格式化查看实例演示,json.cn网址格式化json字符串
- Python 技术篇-含中文编码的代码运行方法,(unicode error) ‘utf-8‘ codec can‘t decode问题原因及解决方法
- Spring Boot Actuators
- 用图机器学习探索 A 股个股相关性变化
- Python 技术篇-连接oracle数据库并执行sql语句实例演示,python连接oracle数据库oci详细配置方法
- MySQL 技术篇-mysql数据库的安装、配置与使用实例演示
- JavaScript 技术篇-js代码获取当前操作系统信息、浏览器版本信息实例演示,windows NT版本对照表
- Oracle 数据库impdp导入数据库版本和dmp数据库文件版本不匹配问题解决方法,ORA-39142版本号不兼容、ORA-39000转储文件说明错误解决方法
- 实践总结:基于Kbone使用React同构开发小程序
- BAT 批处理命令 - 实现输出当前文件夹下的所有文件夹名的功能实例演示
- Python+Selenium 自动化-指定chrome驱动运行selenium实例演示,运行指定位置下的浏览器驱动
- Linux 命令查找指定文件夹下符合查询条件的文件和文件夹实例演示
- 用Python实现一个最新QQ办公版(TIM)的登录界面
- Oracle 数据库直接执行本地sql文件、sql脚本实例演示