apline系统

Alpine Linux是一款小巧安全的轻量级Linux发行版,常用于Docker镜像。其特点包括小巧的体积、面向安全的设计以及便捷的APK包管理。本文将介绍如何使用Dockerfile创建Apache镜像,编写entrypoint.sh脚本,构建并测试容器,最后上传镜像。

apline系统

alpine系统是什么

  • Alpine Linux 是一个基于 musl libc 和 busybox 的面向安全的轻量级 Linux 发行版。

alpine系统的特点

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

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

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

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

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 			//删除一个软件

Dockerfile创建apache镜像

#下载好需要使用的包
[root@localhost ~]# wget http://mirrors.aliyun.com/apache/apr/apr-1.7.0.tar.gz https://mirrors.aliyun.com/apache/apr/apr-util-1.6.1.tar.gz https://mirrors.aliyun.com/apache/httpd/httpd-2.4.54.tar.gz

#创建好一个目录存放包和dockerfile
[root@localhost ~]# mkdir httpd
[root@localhost ~]# cd httpd
[root@localhost httpd]# mkdir files
[root@localhost httpd]# touch Dockerfile
[root@localhost httpd]# cd
[root@localhost ~]# mv *.tar.gz httpd/files/

编写一个entrypoint.sh的脚本

[root@localhost httpd]# cd files/
[root@localhost files]# vim entrypoint.sh 
#!/bin/bash

sed -i '/^ServerName/s/#//g' /usr/local/apache/conf/httpd/conf

exec "$@"
[root@localhost files]# chmod +x entrypoint.sh

编写dockerfile

FROM alpine

LABEL MANTAINER "shenunwei 13872715916@163.com"

ENV apr_version=1.7.0 apr_util_version=1.6.1 httpd_version=2.4.54

ADD files/* /tmp/

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

EXPOSE 80
WORKDIR /usr/local/apache
CMD ["/usr/local/apache/bin/httpd","-D","FOREGROUND"]
ENTRYPOINT ["/bin/bash","/entrypoint.sh"]

创建镜像

[root@localhost ~]# docker images
REPOSITORY        TAG       IMAGE ID       CREATED         SIZE
albertdnp/httpd   v2.0      7d3685d73ee7   2 minutes ago   122MB
alpine            latest    c059bfaa849c   9 months ago    5.59MB

创建容器,链接外部存储,并测试

[root@localhost ~]# mkdir /html/
[root@localhost ~]# cd /html/
[root@localhost html]# echo "Hello, its me" > index.html
[root@localhost html]# cat index.html 
Hello, its me
[root@localhost ~]# docker run -dit --name web -p 80:80 -v /html/://usr/local/apache/htdocs/:Z albertdnp/httpd:v2.0
35c18c3ed8f7fedd6d9ea116dc399181425d070a42a2f9ddc3f81892559af7f7
[root@localhost ~]# docker ps
CONTAINER ID   IMAGE                  COMMAND                  CREATED          STATUS          PORTS                               NAMES
35c18c3ed8f7   albertdnp/httpd:v2.0   "/bin/bash /entrypoi…"   13 minutes ago   Up 13 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp   web
[root@localhost ~]# curl 192.168.48.150:80
Hello, its me

在这里插入图片描述

上传镜像

[root@localhost ~]# docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: albertdnp
Password: 
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
[root@localhost ~]# docker push albertdnp/httpd:v2.0
The push refers to repository [docker.io/albertdnp/httpd]
c09019fe5e8f: Pushed 
4c4e5cd2fa66: Pushed 
8d3ac3489996: Mounted from library/alpine 
v2.0: digest: sha256:6dc71e66b3239e0bc57049e4a0dd3aeb795f665c66ee1ad412e98bc4ddc016b0 size: 952

在这里插入图片描述

### Alpine Kali Linux 安装指南 #### 准备工作 为了成功安装Alpine Kali Linux,需先确认宿主机环境满足最低硬件需求并已准备好必要的工具。对于Hyper-V而言,确保Windows操作系统支持Hyper-V特性,并完成其配置[^4]。 #### 下载镜像文件 访问[Kali官方网站](https://www.kali.org/get-kali/#kali-linux-cloud-images),寻找适用于不同平台的官方ISO映像链接。针对Alpine Kali Linux特别版本,可能需要通过社区论坛或者GitHub仓库获取最新发布的镜像文件。 #### 创建虚拟机实例 利用Hyper-V管理器中的向导创建新的虚拟机,在设置过程中指定之前下载好的Alpine Kali Linux ISO作为启动介质。注意分配足够的内存空间给新建立的VM以便顺利运行目标系统。 #### 初始化安装过程 当一切准备就绪之后,启动新建的虚拟机即可进入图形化或基于文本界面的操作指引页面。按照屏幕提示逐步操作直至完成整个系统的部署流程。由于Alpine本身是一个轻量级的基础架构,因此具体步骤可能会有所简化。 ```bash # 假设已经进入了Alpine Kali Linux Live CD模式下 setup-alpine # 开始初始化设定程序 ``` 此命令会引导用户完成诸如选择键盘布局、网络配置以及磁盘分区等一系列基础性的准备工作[^2]。 #### 后续配置优化 一旦基本安装结束,建议进一步定制化个人的工作环境,比如更新软件包列表、安装额外的应用组件等: ```bash apk update && apk upgrade # 更新现有软件包至最新版本 apk add vim git curl wget htop net-tools dnsutils nmap metasploit-framework hydra john theharvester recon-ng sqlmap hashcat aircrack-ng wireshark tshark tcpdump sslscan nikto dirb gobuster wpscan zaproxy burp-suite-free-edition bettercap mitmproxy proxychains ngrep socat python3-pip ruby-full go rust cargo npm yarn dotnet-sdk php7-cli perl maven gradle docker-compose kubectl terraform ansible chef puppet saltstack packer vagrant minikube helm awscli azure-cli gcloud sdkman pyenv rbenv nodenv asdf direnv tfenv jenv plenv phpenv nodenv lua-language-server bash-language-server fish shellcheck shfmt fzf fd-find bat exa ripgrep delta diff-so-fancy tokei cloc broot procs du-dust hyperfine starship zoxide lsd sd jq yq fx httpie miller csvkit sqlitebrowser hexyl binwalk radare2 capstone keystone unicornengine angr boofuzz pwntools pwndbg ropper ropgadget mona peda gef one_gadget checksec exploitdb seclists fuzzdb wordlists rockyou.txt crackstation.txt etc. ``` 上述指令展示了如何一次性批量安装大量安全测试相关的工具集,当然实际应用时可根据自身需求灵活调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值