在Mac上使用Docker Nginx、PHP和MySQL

在Mac上使用Docker Nginx、PHP和MySQL,php,nginx,docker,Php,Nginx,Docker,我刚开始了解docker,想把它用于一个项目 我已经跟踪并使NGINX运行良好,可以看到NGINX登录页 我需要在我的容器中安装php fpm和mySQL吗?因为我的容器在这个阶段只是NGINX 如何在自定义域(例如project.dev)上配置项目。我是否需要为127.0.0.1 project.dev编辑/etc/hosts中的条目,然后在NGINX配置中侦听该URL 最后,我是否需要一个dockerfile?我已经有了我的容器,我的理解是dockerfile只用于定义容器 一个针对NGIN

我刚开始了解docker,想把它用于一个项目

我已经跟踪并使NGINX运行良好,可以看到NGINX登录页

我需要在我的容器中安装php fpm和mySQL吗?因为我的容器在这个阶段只是NGINX

如何在自定义域(例如
project.dev
)上配置项目。我是否需要为
127.0.0.1 project.dev
编辑
/etc/hosts
中的条目,然后在NGINX配置中侦听该URL

最后,我是否需要一个
dockerfile
?我已经有了我的容器,我的理解是dockerfile只用于定义容器

一个针对NGINX、PHP和mySQL的dockerfile示例也将有助于了解


谢谢

否,本指南仅介绍如何在docker中使用nginx容器。但是我看到容器没有安装php。您不能在此容器内安装
php fpm

因此,如果您想使用docker使用
nginx
php
MySQL
,您应该
pull

  • 运行Nginx+PHP-FPM的容器(我推荐这个图像)
  • 容器运行MySQL()
  • 下载图像

    docker pull richarvey/nginx-php-fpm
    docker pull mysql:5.6
    
    运行MySQL实例。将其命名为mysql56,并使用端口3360公开

    docker run -tid -p 3360:3306 --name mysql56 -e MYSQL_ROOT_PASSWORD=123456 -v /root/docker/mysql56/data/mysql:/var/lib/mysql  -d mysql:5.6
    
    运行Nginx PHP+FPM实例。将其链接到MySQL实例,并将其命名为project dev

    docker run -tid --name project-dev --link mysql56:mysql -v $(pwd):/var/www/html -p 8888:80 richarvey/nginx-php-fpm:latest
    
    运行
    docker ps-a
    查看正在运行的容器

    要使nginx可以通过地址
    project.dev
    访问,只需将其映射到
    /etc/hosts
    。然后在web浏览器上访问它
    http://project.dev:8888

    注意

    • -v/root/docker/mysql56/data/mysql:/var/lib/mysql
      这意味着我在mac上有
      /root/docker/mysql56/data/mysql
      ,并将其映射到
      mysql56
      容器中的
      /var/lib/mysql
      。因此,所有mysql数据都将备份到本地数据上,并且在移除容器时不会丢失
    • -v$(pwd):/var/www/html
      表示当前目录将映射到 容器。所以,无论您在这个目录中写什么,都将存在于
      /var/www/html
      容器
    • 我使用port
      8888
      避免与现有web服务器冲突,您可以 你想怎么改就怎么改

    我已经在mac上安装了PHP和MySQL,所以docker容器可以共享吗?谢谢!默认的mysql安装会给它一个goIs/root/docker/mysql56/data/mysql吗?我需要在我的机器上安装mysql吗?我目前通过MAMP安装了它,但我认为映射MySQL版本不是一个好主意?哦,不,我只是手动创建它,以使数据在我的本地数据库中保持持久性。因此,当容器销毁时,数据将保留在本地。您可以根据需要自定义路径。而且您不需要在本地计算机上安装
    mysql
    。我不确定,
    nginx php+fpm
    容器是否能够在本地连接到
    mysql
    。所以,只需使用docker
    container
    ,它运行
    mysql
    ,就像我在上面的指南中创建的那样。不,只需使用
    -v/root/docker/mysql56/data/mysql:/var/lib/mysql
    选项fyi,就可以从
    PHP
    脚本连接到
    mysql
    ,请使用
    mysql
    作为主机名。因为我们使用
    mysql
    作为link
    nginx php+fpm
    容器(
    --link mysql56:mysql
    )的名称