dockerにチャレンジ〜インストールからコンテナ立ち上げまで
最近仕事でdockerをいじることになりました。良い機会なので、プライベートの開発環境もdockerで構築し直そうとチャレンジ。実際に使ってみるとVagrant以上に簡単でビックリしました。次回以降スムーズに扱えるよう、ナレッジをまとめます。
とりあえずのハローワールド
下記ホームページから「Get started with Docker」ボタンをクリック。Community Editionをダウンロードしてインストールします。
インストール後、とにかく使ってみたいという場合は「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を入れて動かしたいのですが、ポートフォワードをどうすればいいのか悩み中。