2017-07-03 7 views
1

私はドッカーの周りに頭を浮かべていて、プロジェクトに使用したいと思っています。MacでDocker Nginx、PHP、MySQLを使用

私はhttps://docs.docker.com/docker-for-mac/#explore-the-application-and-run-examplesに続き、NGINXが正常に動作しており、NGINXのランディングページが表示されます。

私のコンテナはこの段階ではNGINXなので、私のコンテナ内にphp-fpmとmySQLをインストールする必要はありますか?

カスタムドメインでプロジェクトを設定するにはどうすればよいですか? project.dev/etc/hostsのエントリを127.0.0.1 project.devに編集し、そのURLをNGINX設定でリッスンする必要がありますか?

最後にdockerfileが必要ですか?私はすでにコンテナを持っています。私の理解は、ドッカーファイルはコンテナを定義するためのものですか?

NGINX、PHP、およびmySQL用のドッカーファイルの例も参考になります。

おかげで

+0

をしたいと、あなたは 私はすでにPHPとMySQLはそう、これはドッキングウィンドウコンテナで共有することができ、私のMacにインストールする必要があり、それを変更することができますか? – Stretch0

答えて

3

いいえ、このガイドでは、ちょうどドッキングウィンドウでnginxのコンテナを使用して表示します。しかし、コンテナにはPHPがインストールされていないことがわかります。このコンテナにphp-fpmをインストールすることはできません。だから、

、あなたはpullべきドッキングウィンドウを使用してnginxphp、およびMySQLを使用する場合:nginxの+ PHP-FPMを実行

  1. コンテナ(私はこのイメージhttps://hub.docker.com/r/richarvey/nginx-php-fpm/をお勧めします)
  2. コンテナがMySQLを実行します(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インスタンスを使用して公開します。実行中のコンテナを参照するために実行docker ps -a

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

MySQLインスタンスにリンクし、名前のITプロジェクト-devの

アドレスproject.devでnginxにアクセスできるようにするには、/etc/hostsにマップします。それは私が私のMacで/root/docker/mysql56/data/mysqlを持っている、とmysql56容器に/var/lib/mysqlにマッピング意味

  • -v /root/docker/mysql56/data/mysql:/var/lib/mysql:次に注意 Webブラウザ上でhttp://project.dev:8888

    をそれにアクセスします。したがって、すべてのmysqlデータはローカルデータにバックアップされ、コンテナを削除すると失われません。

  • -v $(pwd):/var/www/html現在のディレクトリが コンテナにマップされることを意味します。だから、あなたがこのディレクトリに書いたものは、 /var/www/htmlコンテナに存在します。私は、既存のWebサーバーとの競合を避けるために、ポート8888を使用
  • あなたは
+0

ありがとう! – Stretch0

+0

/root/docker/mysql56/data/mysqlがデフォルトのmysqlをインストールしていますか?私のマシンにmysqlをインストールする必要はありますか?私は現在MAMP経由でインストールしていますが、そのバージョンのMySQLをマップするのは良い考えではないと思いますか? – Stretch0

+0

ああ、私はローカルでデータを永続させるために手動で作成します。だからコンテナを破壊すると、データは私のローカルに保存されます。必要に応じてカスタムパスを設定できます。 ローカルにmysqlをインストールする必要はありません。私はあなたのローカルでmysqlと接続できる 'nginx php + fpm'コンテナが不明です。ですから、上のガイドで作成したように 'mysql'を実行するdocker' container'を使用してください。 –

関連する問題