2018/07 作者:ihunter 0 次 0
https://alpinelinux.org/downloads/
#查看系统版本 cat /etc/alpine-release #升级整个系统 apk update && apk upgrade #查找包: https://pkgs.alpinelinux.org/packages #更新软件包索引文件 apk update #安装Nginx软件并更新到最新, apk add --update nginx #手工启动Nginx /etc/init.d/nginx #将Nginx添加到启动服务中,下次开机自动运行 rc-update add nginx apk add --update php7=7.1.16-r1 # 安装php apk add --update mysql #安装MySQL,实测安装成功后为 MariaDB apk add --update php7-mysqli php7-pdo_mysql php7-mbstring php7-json php7-zlib php7-gd php7-intl php7-session #安装一些PHP库 apk add --update php7-apache2 apk add --update php7-bcmath php7-bz2 php7-calendar php7-cgi php7-common php7-ctype php7-curl php7-dba php7-dev php7-doc php7-dom php7-embed php7-enchant php7-exif php7-fileinfo php7-fpm php7-ftp php7-gd php7-gettext php7-gmp php7-iconv php7-imap php7-intl php7-json php7-ldap php7-litespeed php7-mbstring php7-mcrypt php7-mysqli php7-mysqlnd php7-odbc php7-opcache php7-openssl php7-pcntl php7-pdo php7-pdo_dblib php7-pdo_mysql php7-pdo_odbc php7-pdo_pgsql php7-pdo_sqlite php7-pear php7-pgsql php7-phar php7-phpdbg php7-posix php7-pspell php7-recode php7-session php7-shmop php7-simplexml php7-snmp php7-soap php7-sockets php7-sqlite3 php7-sysvmsg php7-sysvsem php7-sysvshm php7-tidy php7-tokenizer php7-wddx php7-xml php7-xmlreader php7-xmlrpc php7-xmlwriter php7-xsl php7-zip 同时,MariaDB 数据库还需要进一步设置。 /etc/init.d/mariadb setup #安装 mysql_secure_installation #设置 apk --update --no-cache add libedit libxml2 musl php7-common zlib git curl axel wget vim unzip zip geoip geoip-dev pcre libxslt gd openssl-dev pcre-dev zlib-dev build-base linux-headers libxslt-dev gd-dev openssl-dev libstdc++ libgcc patch logrotate supervisor inotify-tools && rm -rf /var/cache/apk/*
三、Alpine在Docker下运行
1、Docker下的运行
官方 Alpine 镜像的文档:http://gliderlabs.viewdocs.io/docker-alpine/
可以使用Docker Toolbox,创建一台Docker虚拟主机,在该主机的Docker环境下运行alpine的 Docker容器。该容器就是一个Alpine Linux系统,
docker pull alpine
docker run -it --name myalpine alpine
2、作为Docker容器的基础镜像
以Alpine为基础镜像,创建一个MySQL容器,镜像大小只有36.5MB,
同样的方式使用Ubuntu系统作为基础镜像,镜像大小有184MB,
Dockerfile文件的内容:
FROM alpine:3.7
RUN apk add --no-cache mysql-client
ENTRYPOINT ["mysql"]
创建一个test/mysqlclient:1.0镜像
docker build -t test/mysqlclient:1.0 .
四、Alpine的配置和使用
4.1网络相关文件
#主机名文件
/etc/hostname
#使用新设置的主机名立刻生效,执行如下命令:
hostname -F /etc/hostname
#主机IP和域名映射文件
/etc/hosts
#文件内容为:
192.168.99.100 alpine.csdn.net
#DNS 服务器配置文件
/etc/resolv.conf
#文件内容为:
nameserver 218.2.135.1
nameserver 202.102.24.35
#网卡配置文件
/etc/network/interfaces
#文件内容为:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.3.166
netmask 255.255.255.0
gateway 192.168.3.254
#修改完相关配置以后,重新启动网络服务:
/etc/init.d/networking restart
网络相关的文档,详细参见:https://wiki.alpinelinux.org/wiki/Configure_Networking
4.2更新国内源
# Alpine的源文件为:
/etc/apk/repositories,
# 默认的源地址为:http://dl-cdn.alpinelinux.org/
#可以编辑源文件 /etc/apk/repositories,
#采用国内阿里云的源,文件内容为:
https://mirrors.aliyun.com/alpine/v3.7/main/
https://mirrors.aliyun.com/alpine/v3.7/community/
# 如果采用中国科技大学的源,文件内容为:
https://mirrors.ustc.edu.cn/alpine/v3.7/main/
https://mirrors.ustc.edu.cn/alpine/v3.7/community/
4.3软件包管理工具apk的基本使用
alpine 提供了非常好用的apk软件包管理工具,
可以方便地安装、删除、更新软件。
#查询openssh相关的软件包
apk search openssh
#安装一个软件包
apk add xxx
#删除已安装的xxx软件包
apk del xxx
#获取更多apk包管理的命令参数
apk --help
#比如安装常用的网络相关工具:
#更新软件包索引文件
apk update
#用于文本方式查看网页,用于测试http协议
apk add curl
#提供了查看网络连接的协议端口的命令ss,可以替代netstat命令
apk add iproute2
#drill 命令可以替代dig和nslookup DNS查询命令
apk add drill
#测试192.168.3.166的80端口,查看web服务是否能正常访问。
curl 192.168.3.166
#查看建立的TCP连接
ss -ta
#查询域名的信息
drill blog.csdn.net @8.8.8.8
#根据IP地址,反向查找域名
drill -x 8.8.8.8 @47.94.71.34
4.4开启SSH服务
#安装openssh-server服务器
apk add openssh-server
#修改配置文件 /etc/ssh/sshd_config,
#如果要想使用root用户远程管理,需要修改参数为:
PermitRootLogin yes
#将ssh服务配置为开机自动启动
rc-update add sshd
#如果你想立刻生效,可以执行命令:
/etc/init.d/sshd restart
4.5安装nginx
#安装Nginx软件并更新到最新,
apk add --update nginx
#手工启动Nginx
/etc/init.d/nginx
#将Nginx添加到启动服务中,下次开机自动运行
rc-update add nginx
#测试Nginx服务是否正常,使用curl访问,
#默认配置会返回nginx的404页面错误,标明服务已正常:
curl 192.168.3.166