2017-07-03 55 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'就像我在上面創建的那樣。 –