docker:制作alpine+nginx+php镜像
作者:互联网
前言
alpine 是一个轻量级安全地Linux系统,相比ubuntu和CentOS约200M的体积来说,它只有5M,简直令人难以置信。 我是很喜欢简洁的东西的,很多人说不要把docker当做虚拟来用,我暂时保留意见。
最初打算是搭建 ANMP的,但是 MySQL 官方没有提供 alpine 的包,只能下载 MariaDB ,出于对MySQL8的学习等各方面因素,我放弃了MySQL 。只把 nginx 和 php 放进去。
拉取镜像
拉取镜像:
docker pull alpine
查看一下:docker images
进入容器:docker run -it --name aaa alpine
测试容器名aaa
修改镜像源
sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
这是阿里的,不改镜像源是真下载不动。
apk update
这里树莓派系统aarch64遇到了网络不通问题,无法解决
这里ubuntu我遇到了DNS的问题,vim /etc/resolv.conf 发现和容器外 192.168.0.1 不一致,修改后可以 。
下载nginx和php7扩展
apk add nginx
apk add php7
php -m
自带的扩展很少
apk add php7-fpm php7-pdo_mysql php7-mbstring php7-json php7-zlib php7-intl php7-session php7-curl php7-zip php7-dom php7-xmlwriter php7-xmlreader php7-simplexml php7-xmlrpc php7-opcache php7-gd php7-iconv php7-pecl-redis php7-bcmath
(按需安装,这些比较常用)
启动服务
mkdir /run/nginx && touch /run/nginx/nginx.pid
nginx
#启动
php-fpm7
#启动
备注:配置分别在/etc/nginx
和/etc/php7
下自己配。(这里建议目录映射到本机。docker cp aaa:/etc/nginx /etc、docker cp aaa:/etc/php7:/etc/php7
先拷贝到本机上以备下次run时使用)
制作镜像
docker commit -a "作者" -m "描述" 容器号 iii:1.0
镜像名iii
使用镜像
docker run -itd --name 自定义容器名 -p 80:80 -v /var/www:/var/www iii:1.0
docker run -itd --name 自定义容器名 -p 80:80 -v /var/www:/var/www -v /etc/nginx:/etc/nginx -v
/etc/php7:/etc/php7 iii:1.0
(配置目录映射)
redis镜像 - redis:alpine
镜像大小:约32M
镜像拉取:docker pull redis:alpine
运行容器:docker run -itd --name ar -p 6379:6379 redis:alpine --requirepass 密码
标签:php7,etc,nginx,镜像,docker,php,alpine 来源: https://blog.csdn.net/ichen820/article/details/117877832