容器的基础镜像:Alpine Linux

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


赞(3) 更多分享

上篇: rancher安装容器管理: portainer
下篇: docker-rancher部署:RabbitMQ