Alpine Linux 是一个面向安全,轻量级的基于musl libc与busybox项目的Linux发行版.

    1、下载镜像
    docker pull nginx:alpine
    docker pull nginx

    docker pull php:7.2.34-fpm-alpine
    docker pull php:7.2.34-fpm

    docker pull mysql:5.7

    docker pull redis
    docker pull redis:alpine

    docker images

    1. REPOSITORY TAG IMAGE ID CREATED SIZE
    2. redis latest ddcca4b8a6f0 8 days ago 105MB
    3. nginx latest dd34e67e3371 8 days ago 133MB
    4. mysql 5.7 6c20ffa54f86 8 days ago 448MB
    5. nginx alpine 7ce0143dee37 2 weeks ago 22.8MB
    6. redis alpine 814803e951a7 2 weeks ago 32.3MB
    7. php 7.2.34-fpm-alpine a63e75145178 8 months ago 74.2MB
    8. php 7.2.34-fpm 28f52b60203d 8 months ago 398MB

    启动MySQL
    docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 —name dnmp_mysql-v F:/Git_Code/docker/lnmp/mysql/data:/var/lib/mysql -v F:/Git_Code/docker/lnmp/mysql/conf.d:/etc/mysql/conf.d mysql:5.7

    启动php-fpm
    docker run -d -v ~/dnmp/www:/www —name dnmp_phpfpm php:7.2.34-fpm
    docker run -d -v F:/Git_Code/docker/lnmp/www:/www —name dnmp_phpfpm php:7.2.34-fpm

    启动Nginx
    docker run -d -p 80:80 —name dnmp_nginx -v ~/dnmp/www:/var/www/html -v ~/dnmp/nginx/conf.d:/etc/nginx/conf.d -v ~/dnmp/nginx/logs:/var/log/nginx —link dnmp_phpfpm:php —name dnmp_nginx nginx:alpine

    docker run -d -p 80:80 —name dnmp_nginx -v F:/Git_Code/docker/lnmp/www:/var/www/html -v F:/Git_Code/docker/lnmp/nginx/conf.d:/etc/nginx/conf.d -v F:/Git_Code/docker/lnmp/nginx/logs:/var/log/nginx —link mphpfpm:php —name mnginx nginx

    启动redis
    docker run -itd —name dnmp_redis -p 6379:6379 redis

    nginx 配置

    1. server {
    2. listen 80;
    3. server_name localhost;
    4. location / {
    5. root /var/www/html;
    6. index index.html index.htm index.php;
    7. }
    8. error_page 500 502 503 504 /50x.html;
    9. location = /50x.html {
    10. root /var/www/html;
    11. }
    12. location ~ \.php$ {
    13. fastcgi_pass php:9000;
    14. fastcgi_index index.php;
    15. fastcgi_param SCRIPT_FILENAME /www/$fastcgi_script_name;
    16. include fastcgi_params;
    17. }
    18. }

    配置php 模块
    docker-php-ext-install mysqli

    初始化源码目录

    1. docker-php-source extract
    2. 运行上面命令后,会在/usr/src目录下生成一个php源码目录
    3. 安装完成后运行删除源码目录
    4. docker-php-source delete

    安装redis

    1. 下载redis扩展源码
    2. curl -L -o redis4.3.0.tgz https://pecl.php.net/get/redis-4.3.0.tgz
    3. 解压源码
    4. tar xvf redis4.3.0.tgz
    5. 移动源码到php-ext目录下
    6. mv redis-4.3.0 /usr/src/php/ext/redis
    7. 安装phpredis目录中的扩展
    8. docker-php-ext-install redis
    9. 重启php-fpm容器
    10. docker restart
    11. 安装扩展
    12. 默认php镜像中提供的扩展比较少,缺少诸如mysqlgd2等常用的扩展,这样我们就需要自己安装并启用扩展。
    13. 首先进入到php容器,用php -m命令查看本地有什么扩展。
    14. 可以使用docker-php-ext-install命令来安装扩展。
    15. $ docker-php-ext-install mysql
    16. 扩展安装好之后就可以在php.ini中启用。我们从phpinfo中可以看到,容器环境下默认的php.ini没有启用,可以从/usr/local/etc/php下将php.ini-development拷贝为php.ini。通过修改php.ini中配置,启用自己需要的扩展。下面是几个扩展安装的命令,供大家参考。
    17. docker-php-ext-source 在容器中创建一个/usr/src/php目录
    18. docker-php-ext-enable启用PHP扩展,省去我们手工编辑php.ini的过程
    19. docker-php-ext-install安装并启用PHP扩展
    20. docker-php-ext-configure经常与docker-php-ext-install搭配,在需要自定义扩展的配置时使用

    安装 gd扩展

    1. #容器中
    2. sed -i "s@http://deb.debian.org@http://mirrors.aliyun.com@g" /etc/apt/sources.list && rm -rf /var/lib/apt/lists/* && cat /etc/apt/sources.list #软件源修改为网易镜像站源
    3. apt update #更新软件源
    4. apt install -y libwebp-dev libjpeg-dev libpng-dev libfreetype6-dev #安装各种库
    5. docker-php-source extract #解压源码
    6. cd /usr/src/php/ext/gd #gd源码文件夹
    7. docker-php-ext-configure gd --with-jpeg-dir=/usr/include --with-png-dir=/usr/include --with-freetype-dir=/usr/include/freetype2 #准备编译
    8. docker-php-ext-install gd #编译安装
    9. php -m | grep gd

    Ubuntu更新软件源

    1. #打开sources.list文件,在文件末尾增加如下软件源地址
    2. vi /etc/apt/sources.list
    3. #添加阿里源
    4. deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
    5. deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
    6. deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
    7. deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
    8. deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
    9. deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
    10. deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
    11. deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
    12. deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
    13. deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
    14. #3. 更新系统软件源
    15. apt-get update
    16. apt-get upgrade