在Mac上使用Docker Nginx、PHP和MySQL
我刚开始了解docker,想把它用于一个项目 我已经跟踪并使NGINX运行良好,可以看到NGINX登录页 我需要在我的容器中安装php fpm和mySQL吗?因为我的容器在这个阶段只是NGINX 如何在自定义域(例如在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
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
:
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
注意:
这意味着我在mac上有-v/root/docker/mysql56/data/mysql:/var/lib/mysql
,并将其映射到/root/docker/mysql56/data/mysql
容器中的mysql56
。因此,所有mysql数据都将备份到本地数据上,并且在移除容器时不会丢失/var/lib/mysql
表示当前目录将映射到 容器。所以,无论您在这个目录中写什么,都将存在于-v$(pwd):/var/www/html
容器/var/www/html
- 我使用port
避免与现有web服务器冲突,您可以 你想怎么改就怎么改8888
mysql
。我不确定,nginx php+fpm
容器是否能够在本地连接到mysql
。所以,只需使用dockercontainer
,它运行mysql
,就像我在上面的指南中创建的那样。不,只需使用-v/root/docker/mysql56/data/mysql:/var/lib/mysql
选项fyi,就可以从PHP
脚本连接到mysql
,请使用mysql
作为主机名。因为我们使用mysql
作为linknginx php+fpm
容器(--link mysql56:mysql
)的名称