前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Alpine 系统配置记录

Alpine 系统配置记录

作者头像
全栈工程师修炼指南
发布2022-09-28 18:32:46
1.9K0
发布2022-09-28 18:32:46
举报

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.镜像大小
WeiyiGeek.镜像大小

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

代码语言:javascript
复制
#主机名文件
/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/

代码语言:javascript
复制
#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://mirrors.ustc.edu.cn/alpine/v3.8/main" > /etc/apk/repositories
echo "http://mirrors.ustc.edu.cn/alpine/v3.8/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服务

代码语言:javascript
复制
#安装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/

Alpine 系统使用

Alpine Linux 在 Proxy 环境下如何通过网络进行通信? 描述: 在我们的alpine没有办法链接外网时而我们又需要使用apk进行更新仓库索引和下载工具, 此时我们可通过代理方式进行连接到局域网中可以上网和搭建有例如squid代理上网的服务。

  • 宿主机系统
代码语言:javascript
复制
# Alpine 代理设置
proxy_user=weiyigeek
proxy_pass=password
proxy_host=proxy.weiyigeek.top
proxy_port=3128
export http_proxy=http://${proxy_user}:${proxy_pass}@${proxy_host}:${proxy_port}
export https_proxy=${http_proxy}
export no_proxy=127.0.0.1,localhost

# 备份apk仓库文件以及更新仓库索引
cp /etc/apk/repositories /etc/apk/repositories.bak
echo "http://mirrors.ustc.edu.cn/alpine/v3.8/main" > /etc/apk/repositories
echo "http://mirrors.ustc.edu.cn/alpine/v3.8/community">> /etc/apk/repositories
apk update
apk add tcpdump
  • Docker 镜像构建 Dockerfile 配置文件
代码语言:javascript
复制
FROM alpine:latest
ARG proxy_host="proxy.weiyigeek.top"
ARG proxy_port="8080"
ARG proxy_user="username"
ARG proxy_pass="password"
ENV http_proxy http://${proxy_user}:${proxy_pass}@${proxy_host}:${proxy_port}
ENV https_proxy ${http_proxy}
ENV no_proxy 127.0.0.1,localhost
RUN apk update
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-04-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0x01 Alpine的配置和使用
  • Alpine 系统使用
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档