dockerにチャレンジ〜インストールからコンテナ立ち上げまで

最近仕事でdockerをいじることになりました。良い機会なので、プライベートの開発環境もdockerで構築し直そうとチャレンジ。実際に使ってみるとVagrant以上に簡単でビックリしました。次回以降スムーズに扱えるよう、ナレッジをまとめます。

とりあえずのハローワールド

下記ホームページから「Get started with Docker」ボタンをクリック。Community Editionをダウンロードしてインストールします。

https://docs.docker.com/

インストール後、とにかく使ってみたいという場合は「Run Docker Anywhere」の項目から、対応OSのドキュメント置き場へ飛ぶといいでしょう。ドキュメントも非常に整っていて、とっても親切。これがドッカークオリティ。

イメージを引っ張ってくる

Docker Hubに主要なOSやアプリのリポジトリが公開されています。

https://hub.docker.com/explore/

とりあえずCentOSとUbuntuを利用してみます。ターミナルを起動して下記コマンドを実行。

docker pull centos
docker pull ubuntu

ダウンロードが完了したら下記コマンドでイメージが作られているかを確認します。

docker images

コンテナを立ち上げる

引っ張ってきたイメージを元にコンテナを立ち上げます。WordPressなど、Apacheの利用を前提にしたコンテナにしようと思い、80番にポートフォワードしました。うまくいくとコンテナが起動し、勝手にログインしてくれます。

docker run -it -p 80:80 centos:latest /bin/bash

すでに80番がしようされている場合はエラーが発生するので、あらかじめ処理しておきます。簡単な調査方法は下記ページにまとめました。

https://hodalog.com/port-80-unexpected-error-when-docker-run/

コンテナからのログアウトと次回以降のログイン方法について

何も考えずにexitするとコンテナが停止してしまうので注意です。ctrl+Pとctrl+Qでログアウトするのがよろしいかと。docker execでログインすると、コンテナを停止することなくexitが使用できます。

  • ログアウト(コンテナは停止する)…exit
  • ログアウト(コンテナは起動したまま)…ctrl+P か〜ら〜の ctrl+Q
  • ログイン方法…docker attach [ContainerID]
  • ログイン方法(おすすめ)…docker exec -it [ContainerID] /bin/bash

まとめ

dockerの導入からコンテナの立ち上げまでやりました。できればCentOSとUbuntuのコンテナでそれぞれApacheを入れて動かしたいのですが、ポートフォワードをどうすればいいのか悩み中。