首页 > 系统相关 >Alpine Linux使用入门(Docker视角)

Alpine Linux使用入门(Docker视角)

时间:2023-07-31 12:44:06浏览次数:44  
标签:镜像 apk Linux 软件 Docker alpine Alpine

前言

我们在了解Alpine Linux时,多数都应该是从docker系统镜像了解的这个操作系统,今天我们就简单说一下Alpine Linux的基础使用

Alpine Linux是一种基于musl和BusyBox的Linux 发行版,专为安全性、简单性和资源效率而设计。体积非常小巧,适合用来做Docker镜像。如果你有Centos或者Ubuntu的基础,那么上手Alpine还是非常容易的

Alpine Linux镜像非常小巧,不到6M的大小,所以特别适合容器打包。

正文

Alpine没有内置Bash

由于Alpine Linux没有内置bash,所以如果要用docker进入Alpine的交互模式时,需要使用的sh作为伪终端,在为Alpine Linux编写shell脚本的时候也需要注意,使用sh而不是bash。

docker run -it alpine /bin/sh

Alpine Linux软件管理

Alpine Linux使用 apk 指令来管理软件,类似CentOS的yum或Debian的apt-get,首次使用建议用apk update更新下软件,以免无法正常使用。apk的常用指令如下:

#更新软件
apk update

#搜索某个软件
apk search xxx

#安装软件
apk add xxx

#卸载软件
apk del xxx

#查看使用帮助
apk -h

设置Alpine Linux时区

Alpine Linux时区非东八区,某些项目需要和北京时间保持同步,因此我们需要对Alpine Linux默认时区做出修改,方法如下:

#安装timezone
apk add -U tzdata

#查看时区列表
ls /usr/share/zoneinfo

#拷贝需要的时区文件到localtime
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

#查看当前时间
date

#为了精简镜像,可以将tzdata删除了
apk del tzdata

修改Alpine Linux软件源

如果是国内网络使用Alpine Linux,可以使用国内镜像源,这样速度更加理想。(现在源配置了CDN,如果速度可以,可以不更换)

软件源的配置文件位于/etc/apk/repositories,内容如下:

https://dl-cdn.alpinelinux.org/alpine/v3.18/main
https://dl-cdn.alpinelinux.org/alpine/v3.18/community

可以看到这里使用的alpine软件源版本为v3.18,所以我们在修改的时候需要版本保持一致,比如修改为阿里的软件源:

http://mirrors.aliyun.com/alpine/v3.18/main
http://mirrors.aliyun.com/alpine/v3.18/community

后记

Alpine Linux体积非常小巧,但功能完全够用,非常适合作为docker的系统镜像,在Docker hub搜索镜像的时候您会发现很多都是基于Alpine Linux,Alpine现在能爆火,我认为和Docker的崛起不无关系。

标签:镜像,apk,Linux,软件,Docker,alpine,Alpine
From: https://www.cnblogs.com/shuiche/p/17593156.html

相关文章

  • Linux网络编程
    1Socket在linux网络编程中我们主要使用套接字Socke进行不同主机上进程间的通信,该套接字提供了透明传输接口使得我们不需要根据协议栈进行手动封装数据包,我们不必在意协议栈上下层之间的具体服务,而是仅需调用提供的api即可套接字通信的一般流程为:创建套接字:在应用程序中使用网......
  • linux中如何修改网络命名空间中veth设备端点的名字?
    查看原有的设备名称为veth1  [root@centos7~]#ipnetnsexecns1iplink1:lo:<LOOPBACK>mtu65536qdiscnoopstateDOWNmodeDEFAULTgroupdefaultqlen1000link/loopback00:00:00:00:00:00brd00:00:00:00:00:005:veth1@if6:<BROADCAST,MULTIC......
  • 第16章 进程管理与SELinux初探
    第16章进程管理与SELinux初探一个程序被加载到内在当中运作,那么在内存中的那个数据就被称为进程(process)。进程是操作系统上非常重要的概念,所有系统上面跑的数据都会以进程的形态存在。16.1什么是进程(process)在Linux系统中:触发任何一个事件时,系统都会将他定义成为一个......
  • 第十三章 Linux帐号管理与ACL权限设定
    第十三章Linux帐号管理与ACL权限设定13.1Linux的帐号与群组13.1.1使用者标识符:UID与GID每个登入的使用者至少都会取得两个ID,一个是使用者ID(UserID,简称UID),一个是群组ID(GroupID,简称GID)。那么文件如何判断他的拥有者与群组呢?其实就是利用UID与GID啦!13.1.2使用者帐号......
  • Linux Redis配置
    Redis是一个开源的高性能键值对存储系统,具有快速、灵活和可扩展的特性。它是一个基于内存的数据结构存储系统,可以用作数据库、缓存和消息代理。Redis的一些主要特点和用途:高性能:Redis数据存储在内存中,因此能够提供极快的读写操作。它采用单线程模型和异步I/O,避免了多线程的......
  • docker 容器技术--资源限制
    资源限制资源类型      可压缩资源CPU磁盘网络。。。不可压缩资源内存。。。资源限制原理--CGROUPCGROUP概念LinuxCgroup全称LinuxControlGroup,是Linux内核的一个功能,用来限制,控制与分离一个进程组群的资源(如CPU、内存、磁盘输入输出等)。这个项目最早是......
  • 为什么不建议在 Docker 中跑 MySQL
    容器的定义:容器是为了解决“在切换运行环境时,如何保证软件能够正常运行”这一问题。目前,容器和Docker依旧是技术领域最热门的词语,无状态的服务容器化已经是大势所趋,同时也带来了一个热点问题被大家所争论不以:数据库MySQL是否需要容器化?认真分析大家的各种观点,发现赞同者仅仅是......
  • 查linux系统磁盘读写进程问题。
    1、iotop安装以及常见使用方法https://help.aliyun.com/noticelist/articleid/6501633.html?scm=20140722.184.2.173 Linux下的IO统计工具如iostat,nmon等大多数是只能统计到每个磁盘的读写情况,如果想知道每个进程是如何使用IO的就比较麻烦.iotop是一个用来监视磁盘I/O使......
  • Linux之RAID(独立硬盘冗余阵列)
    目录RAID(独立硬盘冗余阵列)1.RAID1.1RAID0磁盘阵列介绍11.2RAID1磁盘阵列介绍21.3RAID5磁盘阵列介绍31.4RAID1+0磁盘阵列介绍4RAID(独立硬盘冗余阵列)1.RAID一个磁盘达不到性能提升,将多块磁盘组成阵列(磁盘组),达到提升硬盘性能的效果raid级别:磁盘的组合方式,组合方......
  • Linux group & user All In One
    Linuxgroup&userAllInOnegroupaddgroupmodgroupdeluseraddusermoduserdel用户组groupadderic@rpi4b:~$groupadd-h用法:groupadd[选项]组选项:-f,--force如果组已经存在则成功退出......