拉取镜像
docker pull nginx:1.21.6
运行镜像生成容器
docker run --name nginx -p 80:80 -d nginx:1.21.6
挂载目录:先将 容器内需要挂载的目录 复制处来(这里复制的主要是复制配置文件,目录的话可以不用复制,直接新建即可)
删除容器
docker stop 容器ID
docker rm 容器ID
运行容器,挂载目录
docker run --name nginx -p 80:80 -v /home/admin/workstation/data/nginx/nginx.conf:/etc/nginx/nginx.conf -v /home/admin/workstation/data/nginx/www/:/usr/share/nginx/html/ -v /home/admin/workstation/data/nginx/logs/:/var/log/nginx/ -v /home/admin/workstation/data/nginx/conf.d/:/etc/nginx/conf.d --privileged=true --link php:php -d nginx:1.21.6
上面主要就是挂载目录多些,其中 --privileged=true 的意思是 防止挂载时权限不够, --link 是连接容器到 nginx 容器里,前一个php 是容器名称,后一个 php 是 可以在容器内 用 php:9000 访问 容器 PHP
访问 nginx
我安装的是 php 7.2 版本的
安装
拉取镜像
docker pull php:7.2.0-fpm
生成容器 挂载目录
docker run --name php -v /home/admin/workstation/data/nginx/www/:/usr/share/nginx/html/ -d php:7.2.0-fpm
这里的 挂载目录 是必须要的。 此项设置要跟nginx挂载一致,否则php-fpm无法识别正确目录。之后 访问 php 的话会报错 not found
访问
conf.d 目录新建 .conf 文件
修改 hosts 文件
www 目录下新增 index.php 文件。(这里如果 有 index.html 文件的话可以删掉)
docker 安装PHP扩展是有自己的命令的,如下(操作这些命令必须进入 PHP 容器内部操作):
-
docker-php-source
-
docker-php-ext-enable
-
docker-php-ext-install
这里就主要介绍两个安装:mysqli 与 redis。其中 mysqli 在 /usr/src/php/ext 有,redis没用
ls /usr/local/lib/php/extensions/no-debug-non-zts-20170718/
-
docker-php-ext-configure