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プロジェクトのディレクトリをどのように配置していけばいいのかはまだわからないが、追い追い調べていこうと思う。