2017-07-03 54 views
1

我刚刚开始让我的头靠近docker并希望将其用于项目。使用Docker在Mac上使用Nginx,PHP,MySQL

我跟着https://docs.docker.com/docker-for-mac/#explore-the-application-and-run-examples,让NGINX运行良好,可以看到NGINX登陆页面。

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

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

最后我需要dockerfile吗?我已经有我的容器了,我的理解是码头文件仅用于定义您的容器?

一个用于NGINX,PHP和mySQL的dockerfile的例子也会对你有所帮助。

谢谢

+0

我已经有PHP和MySQL安装在我的Mac所以这个由泊坞窗容器共享改变呢? – Stretch0

回答

3

不,本指南只显示在docker中使用nginx容器。但我看到容器没有安装php。并且您不能在此容器中安装php-fpm

所以,如果你想使用泊坞窗,你应该pull使用nginxphpMySQL:其运行的Nginx + PHP-FPM(我推荐这个图像https://hub.docker.com/r/richarvey/nginx-php-fpm/

  • 集装箱运行MySQL

    1. 集装箱(https://hub.docker.com/_/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实例,并将它命名为项目开发

    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这意味着我有/root/docker/mysql56/data/mysql我的Mac上,并在mysql56容器映射到/var/lib/mysql。所以所有的mysql数据都将备份在我的本地数据上,并且在我删除容器时不会丢失。
    • -v $(pwd):/var/www/html表示您的当前目录将被映射到 容器。所以,无论你在这个目录下写的是什么,都会在 /var/www/html容器上存在。
    • 我使用端口8888,以避免与现有的Web服务器冲突,可以 只要你想
  • +0

    谢谢!请问一下 – Stretch0

    +0

    是/ root/docker/mysql56/data/mysql你默认的mysql安装吗?我需要在我的机器上安装mysql吗?我目前通过MAMP安装,但我认为映射该版本的MySQL并不是一个好主意? – Stretch0

    +0

    哦不,我只是手动创建它,使数据在我的本地持久性。所以当容器被破坏时,数据将保留在我的本地。您可以根据需要自定义路径。 而且你不需要在你的本地安装'mysql'。我不确定,'nginx php + fpm'容器能够在本地连接到'mysql'。所以,只需使用docker'container'运行'mysql'就像我在上面创建的那样。 –