在Mac上使用Docker Nginx,PHP,MySQL

时间:2017-07-03 02:09:45

标签: php nginx docker

我刚刚开始了解码头工作者,并希望将其用于项目。

我已关注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配置中侦听该网址?

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

NGINX,PHP和mySQL的dockerfile示例也有助于查看。

由于

1 个答案:

答案 0 :(得分:3)

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

因此,如果您想使用泊坞窗使用phpMySQLpull,您应该docker pull richarvey/nginx-php-fpm docker pull mysql:5.6

  1. 运行Nginx + PHP-FPM的容器(我建议使用此图像https://hub.docker.com/r/richarvey/nginx-php-fpm/
  2. 容器运行MySQL(https://hub.docker.com/_/mysql/
  3. 下载图片

    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
    

    运行MySQL实例。将其命名为mysql56,并使用端口3360公开

    docker run -tid --name project-dev --link mysql56:mysql -v $(pwd):/var/www/html -p 8888:80 richarvey/nginx-php-fpm:latest
    

    运行Nginx PHP + FPM实例。将其链接到MySQL实例,并将其命名为project-dev

    docker ps -a

    运行project.dev以查看正在运行的容器。

    要使地址/etc/hosts可以访问nginx,只需将其映射到http://project.dev:8888即可。然后在网络浏览器-v /root/docker/mysql56/data/mysql:/var/lib/mysql

    上访问它

    注意

    • /root/docker/mysql56/data/mysql这意味着我的Mac上有/var/lib/mysql,并将其映射到mysql56容器中的-v $(pwd):/var/www/html。因此,所有mysql数据都将备份在我的本地数据上,并且在删除容器时不会丢失。
    • /var/www/html表示您的当前目录将映射到 容器。所以,无论你在这个目录中写什么,都会存在 8888容器。
    • 我可以使用端口char[][] sudoku = new char[16][16]; Scanner sc = new Scanner(filename); String[] temporary = new String[16]; int counter = 0; while(sc.hasNext){ temporary[counter] = sc.nextLine(); counter ++; } for(int i = 0; i < 16; i++){ for(int j = 0; j < 16; j++){ sudoku[i][j] = temporary[i].charAt(j); } } 来避免与现有Web服务器发生冲突 根据需要更改