docker两种模式搭建nginx+php环境

docker两种模式搭建nginx+php环境

第一种,nginx和php放在两个镜像中

dnmp: https://github.com/yeszao/dnmp,这个文档和配置相对比较齐全,或者直接在官方拉php和nginx的镜像,不过需要自己做挂载和连接

拉取

git clone https://github.com/yeszao/dnmp.git

执行

cd dnmp/
cp env.sample .env
cp docker-compose.sample.yml docker-compose.yml
docker-compose up
# 如果提示没有docker-compose
apt install docker-comopose

启动容器

docker start cfe
docker exec -it cfe /bin/bash

目录挂载

docker run -it -v /data/dnmp/www:/www dnmp_php /bin/sh

停止容器

docker stop cfe

第二种,nginx和php放在一个镜像中

webdevops/php-nginx: https://hub.docker.com/r/webdevops/php-nginx,相对官方一点的混合镜像

拉取镜像

docker pull webdevops/php-nginx

创建容器

docker run -itd --name php-nginx-xs -p 80:80 -v /data/www/:/data/www webdevops/php-nginx

进入对应容器

docker exce -it eb3 /bin/sh

可能问题

OCI runtime exec failed: exec failed: unable to start container process: exec: "/bin/bash": stat /bin/bash: no such file or directory: unknown

将 /bin/bash换成 /bin/sh成功

详解:Docker数据卷目录挂载_忆昔恋蒲荷的博客-CSDN博客_docker 挂载目录

查看

nginx -t
php -v

挂载

docker run -d -v /data/www:/data/www -p 8080:80  --privileged=true webdevops/php-nginx
  • -d 后台静默运行启动过程

  • -v /data/www:/data/www 映射宿主机数据卷到 docker 容器的目录(数据卷名称:/容器目录 )

  • -p 8080:80 映射宿主机的端口到 docker 容器的端口(宿主机端口:容器端口)

  • –privileged=true 授予权限

  • webdevops/php-nginx docker run 所要启动的 nginx 镜像以创建并启动容器

参考:使用docker 容器及镜像 php-nginx 部署 LNMP 环境 | 码农家园

其他

-i: 以交互模式运行容器,通常与 -t 同时使用

-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;

参考:docker快速搭建php7.2-nginx开发环境 – 渺小的人类 – 博客园

文档库: docker -v命令详解——挂载目录或挂载文件 – 极客库

                       

点击阅读全文

上一篇 2023年 6月 10日 am10:28
下一篇 2023年 6月 10日 am10:29