目录
Alpine介绍
alpine是一个轻量级的Linux发行版本,轻量级不仅体现在其占用空间的大小,还因为他没有图形化界面,只有命令行界面。
alpine官网链接:https://www.alpinelinux.org/
alpine特点
1、小巧:基于Musl libc和busybox,和busybox一样小巧,最小的Docker镜像只有5MB;
2、安全:面向安全的轻量发行版;
3、简单:提供APK包管理工具,软件的搜索、安装、删除、升级都非常方便。
4、适合容器使用:由于小巧、功能完备,非常适合作为容器的基础镜像。以Alpine为基础镜像,创建一个容器,镜像大小只有35.26MB,同样的方式使用centos系统作为基础镜像,镜像大小有127MB;所以以Apline作为基础镜像是个非常明智的选择
alpine命令
命令 | 作用 |
---|---|
apk update | 更新最新镜像源列表 |
apk search | 查找所以可用软件包 |
apk search -v | 查找所以可用软件包及其描述内容 |
apk search -v ‘acf*’ | 通过软件包名称查找软件包 |
apk search -v -d ‘docker’ | 通过描述文件查找特定的软件包 |
apk add openssh | 安装一个软件 |
apk add openssh openntp vim | 安装多个软件 |
apk add --no-cache mysql-client | 不使用本地镜像源缓存,相当于先执行update,再执行add |
apk info | 列出所有已安装的软件包 |
apk info -a zlib | 显示完整的软件包信息 |
apk info --who-owns /sbin/lbu | 显示指定文件属于的包 |
apk upgrade | 升级所有软件 |
apk upgrade openssh | 升级指定软件 |
apk upgrade openssh openntp vim | 升级多个软件 |
apk add --upgrade busybox | 指定升级部分软件包 |
apk del openssh | 删除一个软件 |
alpine服务管理
alpine没有使用fedora的systemctl来进行服务管理,使用的是RC系列命令:
rc-update | 主要用于不同运行级增加或者删除服务 |
---|---|
rc-status | 主要用于运行级的状态管理 |
rc-service | 主用于管理服务的状态 |
rc-status -a | 列出系统所有服务 |
alpine的使用
拉取alpine镜像
[root@node1 ~]# podman pull alpine
使用alpine镜像跑一个容器
[root@node1 ~]# podman run -it --rm 9c6f07244728
修改alpine的源
/etc/apk # sed -i s/dl-cdn.alpinelinux.org/alpine/mirrors.aliyun.com/g
安装软件
/etc/apk # apk add gcc
卸载软件
/etc/apk # apk dev gcc
用alpine镜像构建一个apache
[root@node1 ~]# mkdir apacache
[root@node1 ~]# ls
anaconda-ks.cfg apacache httpd muchen nginx
[root@node1 ~]# cp -r httpd/files/ apacache/
[root@node1 ~]#
[root@node1 ~]# cd apacache/
[root@node1 apacache]#
[root@node1 apacache]# ls
files
[root@node1 apacache]# ls files/
apr-1.7.0.tar.gz httpd-2.4.53.tar.gz
apr-util-1.6.1.tar.gz install.sh
FROM alpine
LABEL MAINERTAINER "ly [email protected]"
ENV httpd_version 2.4.54
ADD files/* /tmp/apache
RUN adduser -SHs /sbin/nologin apache && \
cd /etc/apk/ && sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && \
apk add --no-cache -U libtool openssl-dev pcre-dev expat-dev libtool make gcc libc-dev && \
cd /tmp/apache/apr-1.7.0 && ./configure --prefix=/usr/local/apr && \
make && make install && \
cd /tmp/apache/apr-util-1.6.1/ && ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr && make && make install && \
cd /tmp/apache/httpd-${httpd_version} && ./configure --prefix=/usr/local/httpd --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork && make && make install && \
echo 'export PATH=/usr/local/httpd/bin:$PATH' > /etc/profile.d/httpd.sh && \
source /etc/profile.d/httpd.sh && \
cd /tmp/apache && rm -rf *.tar.gz && \
apk del gcc make
WORKDIR /tmp/apache
EXPOSE 80
CMD ["apachectl","-D","FOREGOUND"]
ENTRYPOINT ["/bin/bash","/entrypoint.sh"]
标签:--,apk,&&,node1,apr,alpine
From: https://www.cnblogs.com/TQingS/p/16644890.html