docker安装php及使用dockfile创建镜像和使用,安装php扩展

docker安装php

拉取镜像

docker pull php:7.3.19-fpm

 运行容器

-v /mnt/hgfs/docinner/code/php:/code : 将主机中项目的目录 xxx/php 挂载到容器的 /code

docker run --name vm-php-fpm -v /mnt/hgfs/docinner/code/php:/code -d php:7.3.19-fpm

优化-统一使用网络

docker run --name vm-php-fpm --net vm-net --network-alias php -v /mnt/hgfs/docinner/code/php:/code -d php:7.3.19-fpm

 php dockerfile

dockfile内容

FROM php:7.3.19-fpm

# 开启php扩展安装
ARG INSTALL_PHPEXT=true
# phpredis版本支持
ARG PHPREDIS_VERSION=3.1.3

# 复制指令,从上下文目录中复制文件或者目录到容器里指定路径。
# 目标路径, 该路径不用事先建好,路径不存在的话,会自动创建。
COPY redis.tar.gz /tmp/

# 安装pdo、redis扩展支持
# 参考地址:https://www.cnblogs.com/jxxiaocao/p/12118637.html
RUN if [ ${INSTALL_PHPEXT} = true ]; then 
    apt-get update 
    # install php pdo extension
    && docker-php-ext-install pdo pdo_mysql 
    # install php redis extension
    && tar xvf /tmp/redis.tar.gz 
    && rm -r /tmp/redis.tar.gz 
    && mkdir -p /usr/src/php/ext 
    && mv phpredis-${PHPREDIS_VERSION} /usr/src/php/ext/redis 
    && docker-php-ext-install redis 
    # install php gd extension
    # 安装各种库
    && apt install -y libwebp-dev libjpeg-dev libpng-dev libfreetype6-dev 
    # 解压源码
    && docker-php-source extract 
    && cd /usr/src/php/ext/gd 
    # 准备编译
    && docker-php-ext-configure gd --with-webp-dir=/usr/include/webp --with-jpeg-dir=/usr/include --with-png-dir=/usr/include --with-freetype-dir=/usr/include/freetype2 
    # 编译安装
    && docker-php-ext-install gd 
    # install vim
    && apt-get install -y vim 
    # install ping
    && apt install -y iputils-ping 
;fi

build

docker build -t php:cible2.0 .

运行容器

docker run --name vm-basicfinder-v3nf-php --net vm-basicfinder-v3nf --network-alias php -v /mnt/hgfs/basicfinder/v3nf-api:/basicfinder/www/v3nf.basicfinder.com/api -v /mnt/hgfs/basicfinder/v3nf-web:/basicfinder/www/v3nf.basicfinder.com/web  -d php:cible2.0

 php 安装完扩展存放目录

/usr/local/lib/php/extensions/no-debug-non-zts-20180731/
原文地址:https://www.cnblogs.com/wanghaokun/p/14072370.html