Alpine系统的基础操作

Alpine系统的基础操作

简介

alpine是一个轻量级的Linux发行版本,轻量级不仅体现在其占用空间的大小,还因为他没有图形化界面,只有命令行界面。

alpine特点:

小巧:基于Musl libc和busybox,和busybox一样小巧,最小的Docker镜像只有5MB;

安全:面向安全的轻量发行版;

简单:提供APK包管理工具,软件的搜索、安装、删除、升级都非常方便。

适合容器使用:由于小巧、功能完备,非常适合作为容器的基础镜像。

alpine国内源

清华大学:https://mirror.tuna.tsinghua.edu.cn/alpine/
阿里云:https://mirrors.aliyun.com/alpine/
网易:http://mirrors.163.com/

基本命令使用

apk 相当于 yum
用法:apk[]命令[]
/ # apk add vim 
fetch https://dl-cdn.alpinelinux.org/alpine/v3.16/main/x86_64/APKINDEX.tar.gz
fetch https://dl-cdn.alpinelinux.org/alpine/v3.16/community/x86_64/APKINDEX.tar.gz
(1/5) Installing xxd (8.2.5000-r0)
(2/5) Installing lua5.4-libs (5.4.4-r5)
(3/5) Installing ncurses-terminfo-base (6.3_p20220521-r0)
(4/5) Installing ncurses-libs (6.3_p20220521-r0)
(5/5) Installing vim (8.2.5000-r0)
Executing busybox-1.35.0-r17.trigger
OK: 35 MiB in 19 packages

apk update 更新

apk update 		#更新最新镜像源列表

apk search 查找

apk search 					#查找所有可用软件包
/ # apk search
...
graphviz-graphs-3.0.0-r0
qt6-qtwebsockets-dev-6.3.0-r0
uwsgi-signal-2.0.20-r0
abook-lang-0.6.1-r5
softhsm-doc-2.6.1-r3
perl-mime-types-2.21-r0
py3-pastedeploy-2.1.1-r1
perl-net-http-doc-6.22-r0
shared-mime-info-lang-2.2-r0
font-iosevka-curly-slab-15.3.1-r0
restic-bash-completion-0.13.1-r4
fbida-2.14-r1

apk search -v 				#查找所以可用软件包及其描述内容
apk search -v 'acf*' 		#通过软件包名称查找软件包
/ # apk search -v 'acf*'
acf-lib-lua5.1-0.11.0-r2 - Lua 5.1 libraries for ACF
acf-alpine-baselayout-0.13.3-r2 - Web-based system administration interface for alpine-baselayout
acf-dnscache-0.6.0-r4 - Web-based system administration interface for dnscache
acf-nsd-0.0.1-r2 - Web-based system administration interface for nsd
alpine-conf-3.14.6-r0 - Alpine configuration management scripts
apk search -v -d 'docker' 	#通过描述文件查找特定的软件包

apk add 安装

apk info 						#列出所有已安装的软件包
apk info -a zlib 				#显示完整的软件包信息
apk info --who-owns /sbin/lbu 	#显示指定文件属于的包
/ # apk info
alpine-baselayout-data
musl
busybox
alpine-baselayout
alpine-keys
ca-certificates-bundle
libcrypto1.1
libssl1.1
ssl_client
zlib

apk upgrade 升级

apk upgrade 						#升级所有软件
apk upgrade openssh 				#升级指定软件
apk upgrade openssh openntp vim   	#升级多个软件
apk add --upgrade busybox 			#指定升级部分软件包

apk del 卸载

apk del openssh  		#删除一个软件

add:   **相当于install**
del:   **相当于remove**

创建用户和组

//创建用户
adduser
-h 			#创建家目录
-g			#用户的详细信息
-s 			#登录shell
-G			#组
-S 			#创建系统用户
-D 			#不分配密码
-H 			#不创建家目录
-u 			#UID
-k 			#创建框架目录

//删除用户
deluser

关机重启

localhost:~# reboot		 #重启系统
localhost:~# poweroff	 #关机

查看系统版本

[root@localhost ~]# docker run -it --rm alpine /bin/sh
/ # cat /etc/issue 
Welcome to Alpine Linux 3.15
Kernel \r on an \m (\l)

配置apk源

配置apk源
[root@localhost ~]# cat apk
#!/bin/bash
#阿里源
version=v3.15
echo 'http://mirrors.aliyun.com/alpine/$version/main
http://mirrors.aliyun.com/alpine/$version/community
' >/etc/apk/repositories

apk update #更新

Dockerfile用Alpine系统做为底层镜像编译安装httpd

为什么用Alpine做底层镜像而不用centos呢,因为Alpine占用内存更小,上传和拉取更为方便,在企业里一般都是基于Apline底层镜像在做镜像的。


#现在网上把httpd的三个包下载下来然后创建一个httpd的目录。在httpd的目录下面创建一个files目录放三个安装包。
[root@localhost ~]# mkdir httpd
[root@localhost ~]# cd httpd
[root@localhost httpd]# mkdir files
[root@localhost httpd]# cd
[root@localhost ~]# mv apr-1.7.0.tar.gz apr-util-1.6.1.tar.gz httpd-2.4.54.tar.gz httpd/files/
[root@localhost ~]# cd httpd/
[root@localhost httpd]# ls
files
[root@localhost httpd]# ls files/
apr-1.7.0.tar.gz  apr-util-1.6.1.tar.gz  httpd-2.4.54.tar.gz
[root@localhost httpd]# 

写dockerfile文件

[root@localhost httpd]# cat Dockerfile
FROM alpine 

LABEL MAINTAINER "kang 3102907818@qq.com"

EXPOSE 80 
 
ADD files/* /tmp/

RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && \
apk update && \
apk add --no-cache -U gcc libc-dev make expat-dev pcre-dev openssl-dev libtool && \
adduser -SHs /sbin/nologin apache && \
cd /tmp/apr-1.7.0/ && \
sed -i '/$RM "$cfgfile"/d' configure && \
./configure --prefix=/usr/local/apr && \
make && \
make install && \
cd && \
cd /tmp/apr-util-1.6.1/ && \
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr && \
make && \
make install && \
cd && \
cd /tmp/httpd-2.4.54/ && \
./configure --prefix=/usr/local/apache --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 && \
apk del gcc make && \
rm -rf /tmp/* /var/cache/*

WORKDIR /usr/local/apache
CMD ["-D","FOREGROUND"]
ENTRYPOINT ["/usr/local/apache/bin/httpd"]
[root@localhost httpd]# podman build -t httpd:v0.5 .
...
WORKDIR /usr/local/apache
CMD ["-D","FOREGROUND"]
ENTRYPOINT ["/usr/local/apache/bin/httpd"]
[root@localhost httpd]#
Executing busybox-1.35.0-r17.trigger
OK: 24 MiB in 29 packages
--> 6dff07d2150
STEP 6/8: WORKDIR /usr/local/apache
--> 0e22ae5a52e
STEP 7/8: CMD ["-D","FOREGROUND"]
--> 17183c23cb6
STEP 8/8: ENTRYPOINT ["/usr/local/apache/bin/httpd"]
COMMIT httpd:v0.5
--> 7570b5d872e
Successfully tagged localhost/httpd:v0.5
7570b5d872e7d650a64c0b74fa93333a43f40e06a8cb476f1cabcc306f6d797c
[root@localhost httpd]# podman images
REPOSITORY                TAG         IMAGE ID      CREATED         SIZE
localhost/httpd           v0.5        7570b5d872e7  12 seconds ago  120 MB
[root@localhost httpd]# podman run -d -p 8000:80 localhost/httpd:v0.5
0e495c50192e0d28cba5135b543a121c3eea80b9f80f5d56541637b41853cffa
#检验镜像是否能访问的到
[root@localhost httpd]# curl http://192.168.171.134:8000
<html><body><h1>It works!</h1></body></html>
[root@localhost httpd]# podman login docker.io
Username: nuanchun
Password: 
Login Succeeded!
[root@localhost httpd]# podman push docker.io/nuanchun/httpd:v0.5
Trying to push docker.io/nuanchun/httpd:v0.5...
Getting image source signatures
Copying blob 213ec9aee27d skipped: already exists  
Copying blob 4059ef3f52cf done  
Copying blob f4853e097388 done  
Copying config 7570b5d872 done  
Writing manifest to image destination
Storing signatures
7570b5d872e7d650a64c0b74fa93333a43f40e06a8cb476f1cabcc306f6d797c

看一下官方的仓库

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Alpine和OpenSSH都是两个不同的开源软件项目。 Alpine是一个轻量级的Linux发行版,主要用于嵌入式系统和低功耗设备。它采用了BusyBox工具集,并使用基于内存的文件系统来最小化磁盘空间占用。这使得Alpine成为资源受限环境中的理想选择,比如嵌入式设备和容器化环境。Alpine还提供最小化的安装选项,使系统管理员只需安装所需的最基本软件包,而不必装载冗余的组件。 OpenSSH是一个用于安全远程登录的开源软件。它提供了一个在网络上安全连接到远程主机的机制,并使用加密技术来确保数据传输的机密性和完整性。OpenSSH支持多种安全协议和加密算法,包括SSH-1、SSH-2、RSA、DSA和ECDSA等。通过OpenSSH,用户可以在不同的计算机之间进行安全的文件传输和远程命令执行。 将两者结合在一起,"alpine openssh"可以指的是在一个Alpine Linux系统上使用OpenSSH来实现远程安全访问和管理。我想到的一个应用场景是在嵌入式设备上使用这个配置,这样可以在资源受限的环境中实现安全的远程管理。使用Alpine作为操作系统可以节省磁盘空间和系统资源,而OpenSSH可以提供加密和安全认证机制,确保远程连接的安全性和可靠性。 总的来说,"alpine openssh"可以指的是将轻量级的Alpine Linux操作系统和安全的OpenSSH软件结合在一起,为用户提供资源高效且安全的远程管理能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值