Dockerを触ってみたい(2)
前回 → Dockerを触ってみたい(1) - kituman備忘録 の続き。
設定ファイルのクローン
以下のコマンドでgitから環境作成に必要なファイルをクローンしてくる。
$ git clone git@github.com:koni/docker-php-nginx-mysql-memcached.git
ちなみMacだと最初からgitがインストールされているので便利。
補足として、
クローンする際にディレクトリ名を変更したい場合は、
$ git clone [リポジトリ] [好きなディレクトリ名]
のようにするとよい。
すると以下のエラーが...
git@github.com: Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
ググった結果どうやら公開鍵の登録が必要らしい。
GitHubでssh接続する手順~公開鍵・秘密鍵の生成から~ - Qiita
そういえば新しく買ったMacでgitを使うのは初めてだったので上記リンクに従い登録する。
まずは秘密鍵・公開鍵のペアが存在するか確認する。
$ ls ~/.ssh/ id_rsa id_rsa.pub known_hosts
すでに鍵は作成済みだったのでGithubに登録!
しようとしたがGithubにログインできない...
少し前にパスワードを強化しろと通知が来て、変更していたのを忘れていた。
何度も思い当たるパスワードをチャレンジしてようやく
...
There have been several failed attempts to sign in from this account or IP address. Please wait a while and try again later.
はぁ...
一度こうなるとしばらくアクセスできなくなるので気をつけよう!
というわけでパスワードをリセットしてからリトライ。
$ git clone git@github.com:koni/docker-php-nginx-mysql-memcached.git $ ls docker-php-nginx-mysql-memcached
やったぜ。
ビルドと起動
以下のコマンドでクローンしたディレクトリに入り、docker-compose.yml
が存在することを確認。
$ cd docker-php-nginx-mysql-memcached/docker $ ls docker-compose.yml nginx php-fpm56 php-fpm71 php-fpm72 php-fpm73
ありますねぇ!
docker-composeでビルド。
$ docker-compose up
初回起動時はダウンロードやビルドが行われるため結構時間がかかる。
ちなみに、オプションとして-d
をつけることでバックグラウンドで起動してくれる。
コンテナの起動状態を確認するには、
$ docker-compose ps Name Command State Ports ------------------------------------------------------------------------------------------------------- docker_data_1 sh Exit 0 docker_memcached_1 docker-entrypoint.sh memcached Up 0.0.0.0:11212->11211/tcp mysql docker-entrypoint.sh mysqld Up 0.0.0.0:13306->3306/tcp, 33060/tcp nginx nginx -g daemon off; Up 0.0.0.0:443->443/tcp, 0.0.0.0:80->80/tcp web docker-php-entrypoint php-fpm Up 9000/tcp
うん、全て起動している。
起動が確認できたらブラウザでhttp://localhost
にアクセスする。
するとpublic/index.php
の内容が表示されるのでPHPを動かせた。
dockerを終了させるには、
$ docker-compose stop
上記コマンドでコンテナを停止させる。
時間はかかったがPHPの開発環境を作成することができた。
docker-compose.yml
が何をしているのかや、これからPHPプロジェクトのディレクトリをどのように配置していけばいいのかはまだわからないが、追い追い調べていこうと思う。