美文网首页
alpine容器apk命令的使用

alpine容器apk命令的使用

作者: shark_tear | 来源:发表于2021-08-26 22:26 被阅读0次

这两天在使用容器来编译前后端项目,踩了一些坑,记录一下。

alpine是使用非常广泛的一个容器基础镜像,提供了一个基础的Linux环境,但是它的容量却非常小。因此以它为基础打出来的镜像体积能到缩小很多,对于镜像的分发和传输上具有很大的优势。

但是因为它是一个基础的linux环境,因此一些复杂点的组件全部被删除,只提供基本的功能。在我们配置自己需要的环境的时候,很多组件都需要自己来手动安装。

安装组件的工具

alpine镜像里使用的是apk工具来安装组件,而且是通过联网安装。这个工具和其他linux发行版上的yum、apt工具功能是一样的,可以帮你解决软件的依赖关系,然后自动安装软件,一些常用的软件包上面都有,而且随着它的使用率越来越高,它上面常用的软件会越来越多。apk工具它也是通过源来下载软件,默认的源同样也是在国外,因此对于一些网络不好的环境,可以使用内部的源,或者国内的源。那么我们以它为基础镜像后,要做的第一件事就是替换国内源。默认的源信息配置在/etc/apk/repositories文件里。默认文件内容如下:

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

将里面的两个地址换成国内的阿里云的源或者中科大的源,替换命令如下:

# 阿里的
sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories

# 中科大的
sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories

替换完成后,加速就非常明显

apk的使用

搜索包

搜索使用的是search子命令,示例如下:

apk search php8
php8-imap-8.0.9-r0
php8-ftp-8.0.9-r0
php8-pspell-8.0.9-r0
php8-phar-8.0.9-r0
php8-pecl-imagick-dev-3.5.0-r0
php8-litespeed-8.0.9-r0
php8-pecl-vips-1.0.12-r0
php8-dba-8.0.9-r0

会显示很多结果,然后直接根据名称安装即可。

安装

安装使用的是子命令add,不是install,示例如下:

 apk add php8-ftp
fetch https://mirrors.aliyun.com/alpine/v3.14/main/x86_64/APKINDEX.tar.gz
fetch https://mirrors.aliyun.com/alpine/v3.14/community/x86_64/APKINDEX.tar.gz
(1/1) Installing php8-ftp (8.0.9-r0)
OK: 118 MiB in 96 packages

安装流程显示的信息也非常简洁明了

查询包信息

查询使用的是子命令info,示例如下:

apk info -a php8-ftp
php8-ftp-8.0.9-r0 description:
PHP8 extension: FTP

php8-ftp-8.0.9-r0 webpage:
https://www.php.net/

php8-ftp-8.0.9-r0 installed size:
104 KiB

php8-ftp-8.0.9-r0 depends on:
php8-common
so:libc.musl-x86_64.so.1
so:libcrypto.so.1.1
so:libssl.so.1.1

php8-ftp-8.0.9-r0 provides:
php-ftp

php8-ftp-8.0.9-r0 is required by:

php8-ftp-8.0.9-r0 contains:
etc/php8/conf.d/00_ftp.ini
usr/lib/php8/modules/ftp.so

php8-ftp-8.0.9-r0 triggers:

php8-ftp-8.0.9-r0 has auto-install rule:

php8-ftp-8.0.9-r0 affects auto-installation of:

php8-ftp-8.0.9-r0 replaces:

php8-ftp-8.0.9-r0 license:
PHP-3.01 BSD-3-Clause LGPL-2.0-or-later MIT Zend-2.0

使用-a选项可以显示出完整的信息,包括它所需的依赖,它的大小、包里的文件存放位置、项目地址、提供的库等等,非常详细。

移除

移除使用的是子命令del,示例如下:

apk del php8-ftp
(1/1) Purging php8-ftp (8.0.9-r0)
OK: 118 MiB in 95 packages

上面就是apk工具的几个基本操作命令,也是在使用alpine工具的时候摸索出来的一点东西。

相关文章

网友评论

      本文标题:alpine容器apk命令的使用

      本文链接:https://www.haomeiwen.com/subject/cwcpiltx.html