見出し画像

#マンガでわかるDocker ② 〜開発環境を作ろう編〜【読書メモ】

「#マンガでわかるDocker ① 〜概念・基本コマンド編〜 」の続編です。
全3巻のうちの2巻です。

マンガでわかるDocker ② 〜開発環境を作ろう編〜 【ダウンロード版】

どんな本?

実際にDocker で開発環境を作成する方法や、Vagrant との違いなどについて学べます。
対象読者は「前作で基本コマンドをさわってみた&コマンドラインとVim を使ったことがある人」です。

ターミナルのスクショに吹き出しで補足説明がついていたりして、細部までわかりやすいです。

なんで読もうと思ったのか

・「#マンガでわかるDocker ① 〜概念・基本コマンド編〜 」がものすごくわかりやすかったため
・ローカル環境をDocker でサクッと作れるようになりたかったため

目次

・Dockerはどう便利? あるとき・ないとき
・Vagrantとの違い
・PHPのローカル開発環境をサクッと作ってみよう 〜マウント完全に理解した〜
・自分好みのイメージを作ろう 〜Dockerfileを書いてみよう〜
・Docker Hubにイメージを公開しよう 〜GitHubと組み合わせてオートメーションビルド〜

特に勉強になったところ

■ Docker がないと何が困るのか

・「Aさんの環境では動くのに、Bさんの環境では動かない」ということがよくある
・Docker があると、コマンド一発で確実に同じローカル開発環境を作れる (=みんなのローカル開発環境が揃う)
・すでに配布されているイメージを支えるため、1から作らなくていい。さらにカスタマイズもできる
■ ローカル開発環境をサクッと作る

・コンテナ起動
 docker run -d -p 80:80 --name {イメージ名} php:7.0-apache
 ※ -d オプション:コンテナをバックグラウンドで動かす
  コンテナにサーバー機能を持たせたいときは対話式(-it) ではなく-d
  -p オプション:左がアクセスされるポート番号。右がコンテナ側のポート番号

・コンテナにログイン
 docker exec -it {イメージ名} bash
■ マウント

・コンテナの中にファイルを作っても、コンテナを消したらファイルが消えてしまう。それは困るのでマウントする

・マウントとは、簡単にいうと「Docker コンテナ内に外部記憶装置としてローカルディレクトリの一部を組み込み、Docker コンテナがローカルディレクトリを参照できるようにすること

docker run -d -p 80:80 --name {イメージ名} -v $(pwd):/var/www/html php:7.0-apache
※ -v オプション:対象のパスをマウントさせる。
 左がローカルディレクトリ。右がコンテナ内のパス
■ Docker Hub で自作イメージの自動生成・公開を行う流れ

1. 作ったDockerfile をGitHub に公開
2. Docker Hub 上でリンク設定
3. Docker Hub 上に自作イメージを公開

感想

前作に引き続き、初心者目線のわかりやすい解説がありがたすぎる。
おかげで挫折せずに済みました...!

Vagrant < Docker の理由にも触れてくれていて、納得感がありました。

Dockerfile があれば[docker build] コマンドでサクッと環境が作れるのは本当に画期的ですね。
今更だと思いますが学べてよかったです。。良書。

この記事が気に入ったらサポートをしてみませんか?