初心者プログラマーでも簡単に扱えるdocker入門編!docker-composeとは?

今回はローカル開発環境の構築についてです。

Web系エンジニアはdockerを使ってる人が多いと思うのですが、まだ使っていないって人も一定数いますよね。

しかし、dockerっていうのは今後絶対に必要になってくるでしょう。

なぜ、dockerが必要なのか?

そして初心者プログラマーでも簡単に扱えるようになるdocker入門編について解説していきます。

dockerを使うメリット

dockerの最大のメリットはローカル環境の構築が簡単にできてしまうところにあります。

ローカル環境とは、プログラミング開発をする時の土台です。

開発する状況によって、環境は様々。

  • OSは何を使うのか
  • webサーバーは何を使うのか
  • データベース等ミドルウェアは何を使うのか
  • PHPやpythonのバージョンはいくつか

これらを案件に別にいちいち作り込んでいくのはとてもめんどくさいし非効率的。

手軽にローカル環境の開発ができて、尚且軽くてPCの負担もすくない。

それがdockerなのです。

しかも構築した環境も共有するのも可能。

グループ開発をするなら環境配布の手軽さは重要ですよね。

Web系エンジニアなら、会社員だろうがフリーランスだろうが、受託開発だろうがSESだろうが、絶対にdockerは必要なってくるんじゃないでしょうか。

フリーランスでの働き方が増えm個人の時代がやってくると言われている。

そうなったら、見ず知らずの人間といきなりグループ開発をすることも増えていくでしょう。

そんな時、みんながその時代のトレンドに合わせておけば、スムーズに開発を進めることができるでしょう。

だからこそ、手軽にローカル環境の共有ができるdockerが重宝されるのは間違いない。

まだdockerを使ってない人は、早い段階で使えるようにしておかないと、後々苦労することになるんじゃないかな。

dockerを使ってみて思ったこと

僕は今までローカルの開発環境にdockerを使っていませんでした。

vagrant+VirtualBoxを使ったり、wordpressを使う場合はMAMPで事足りてたし。

もともとはそんな感じでした。

しかし、Webエンジニアの求人とかフリーランス案件にざっと目を通してみるとdockerを使っているものがとても多かったのです。

要するにdockerが使えないと案件に参画すらできないという感じなのです。

それくらい、皆がdockerを使っているのです。

dockerを試しに使ってみたのですが、思っていた100倍くらい簡単でした。

こういう時に毎回、思うけど知らないことに対しては必要以上に高い壁だと感じてしまうんだよね。

やってみると、案外簡単。

初心者プログラマーでも簡単にローカル環境を作ることができるようになるんじゃないでしょうか。

僕はもともと文系出身だし、プログラミングは完全独学でやってきた人間です。

サーバーサイドの知識も乏しく、どちらかというとフロントエンドに寄っている人間です。

そんな僕のような人間でも、手軽にdockerを使うことができたのだから、軽く調べれば基本の部分は誰でもできるようになるんじゃないかな。

未知の領域のものを始める時、自分にはできないという思い込みが邪魔して行動できないことはとても多いです。

dockerなんて簡単だし、みんな使ってるから使えない方が問題だよねってくらいに考えてみたらどうかな。

Webエンジニアの開発環境でdockerを使ってる人がほとんどだし、みんなが使ってるものを使った方がメリットがたくさんある。

開発環境にオリジナルや希少性を求めても意味ないし、みんなが使ってるからって理由だけでも、dockerを使わなければいけない理由になるんじゃないだろうか。

Webサービスやアプリケーション開発をやるのであれば、とりあえず開発環境の構築を一番最初にやらないと何も始まらない。

初心者プログラマーにとって、Webエンジニアになるための始めの一歩がdocker使った開発環境構築を学ぶことかもなのではないでしょうか。

wordpressのローカル環境をdockerで作ってみる

それではdocker-composeを使ってwordpressを動かしてみます。

まずはPCにdockerをインストールします。

mac

https://hub.docker.com/editions/community/docker-ce-desktop-mac

windows

https://hub.docker.com/editions/community/docker-ce-desktop-windows

ちゃんとインストールできたかどうかはターミナルでバージョン確認コマンドをうってみてください。

$ docker version

docker-compose.ymlの準備

http://docs.docker.jp/compose/wordpress.html

ここからコピペでOKなのですが、wordpressの方はデータをコンテナの外に置くのでvolumesを設定します。

自分のディレクトリ、ここではwwwとして設定しています。

version: '2'
services:
  db:
    image: mysql:5.7
    volumes:
      - "./.data/db:/var/lib/mysql"
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: wordpress
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress

  wordpress:
    volumes:
      - ./www:/var/www/html
    depends_on:
      - db
    image: wordpress:latest
    links:
      - db
    ports:
      - "8000:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_PASSWORD: wordpress

コマンドでコンテナを起動させます。

$ docker-compose up -d

これで完了。

ポート番号で設定されているURL、

http://localhost:80000

ここにアクセスすれば、wordpressのセットアップが始まります。

docker-compose.ymlのファイルをgitでコミットしておけば、あとはコマンドで実行するだけで開発環境が共有できてしまうのです。

本当に手軽ですよね。

まとめ

プログラミングスクールが充実した今の時代、簡単なことはそのうち皆ができるようになる。

そして、難しいことはテクノロジーが発展するとどんどん簡単になっていく。

自分の人材価値を上げるためには、もっとレベルが高いことができるようになって、世の中にとって希少性を見い出さないと。

dockerだって、もともとローカルに開発環境を作るのは結構な知識が必要だったはずなのに、こんなに簡単に作れるようになったんだ。

初心者プログラマーだとしても、qiitaとか見ればだいたいやり方がわかってしまう。

世の中は便利すぎて本を買う必要までなくなったんだね。

情報に価値がなくなるという話をよく耳にするのですが、この意味が何となくわかってきました。

情報を知ってるか知らないかじゃなくて、情報を取得しようとする意思さえあればそれで知ってる人と同じくらいの価値が生まれるってことなんじゃないかな。

正社員という奴隷制度に中指を立てるWebエンジニアです。PHPが得意。繋がれた鎖を断ち切るために、自由を取り戻すために、プログラミングスキルを磨く日々です。プログラミングと個人でもできるビジネスについて、情報発信しています。

詳しくはこちら