ブロックチェーン・AI・システム開発の株式会社INDETAIL

Docker 再入門 (2) 〜 イメージ作成とコンテナ起動

2015.03.02
tacck

毎年2月は、札幌では雪まつりが行なわれています。
今年は、プロジェクションマッピングなども行われて楽しそうでしたね。

そして、1秒も見に行くことのできなかったtacckです。
こんにちは。

ちなみに、弊社は会場のすぐそばのビルに入っているのですが、今年はサザエさんの音楽を堪能することができました。
大通り10丁目会場の大雪像がサザエさんでした。

さて、今回は前回から引き続き、Docker再入門の二回目として、基本的なイメージの作成とコンテナ起動について確認していきたいと思います。

環境

こちらは、以前に私の書いた記事をそのまま、Packer+DockerのVagrant環境を使います。
(今回はPackerは使いませんが、次回以降のために。)

Dockerで作るイメージの準備

今回は、動作確認をやりやすいnginxのコンテナを作ってみたいと思います。

まずは、下記の2ファイルを作成します。

Dockerfile

"FROM"は、元となるイメージの指定です。今回は、標準のDockerリポジトリで提供されている"ubuntu"の"14.04"タグを利用する、という意味となります。

"MAINTAINER"は、Dockerfileおよびイメージの作成者となります。各自のお名前を入力しておいてください。

"RUN"は、イメージ作成のために実行するコマンドを記載していきます。今回は"nginx"のインストールを行なっています。

"ADD"は、イメージ作成時にローカルから追加するファイルの指定を行ないます。今回は、"nginx"の公開ディレクトリへ"index.html"ファイルを追加することになります。

index.html

Dockerイメージ作成

上記ファイルが準備できたら、下記のようにコマンドを実行します。
"-t"オプションは、イメージのリポジトリ名とタグ名の指定を行なうものです。

"."で、カレントディレクトリにある"Dockerfile"を読み込んでイメージ作成を行ないます。

docker imagesの結果から、指定通りにイメージが作成されたことが確認できます。

イメージからコンテナの起動

次に、作ったイメージ"tacck/nginx:1.0"を利用して、nginxのコンテナを作成・起動します。

docker runで、指定したイメージ"tacck/nginx:1.0"を利用したコンテナの起動を行なっています。

コンテナ内の80番ポートをローカルの8000番ポートにマッピングし、コンテナ名"nginx"として起動していることが、docker psの結果からもわかります。
(が、横に長い表示のため、少々見にくいです。)

起動もプロセスの実行だけなので、「仮想イメージ」を使う感覚はあまり感じることなく利用できます。

動作確認

では、実際にローカルの8000番にHTTPでアクセスしてみましょう。

無事に、"index.html"の中身が表示されました。

まとめ

今回は、シンプルな"Dockerfile"を作成し、nginxの起動までを確認しました。

次回は、Dockerのコンテナ間の連携について確認していこうと思います。

関連タグ:

tacck Takuya KIHARA

エンジニア (モバイルアプリ、フロントエンド、バックエンド、インフラ) 得意なことは、領域をまたいで考え、開発すること。 ブログでは、主にAnsible、Docker、Raspberry Piのことを書いています。 好きなフィギュアスケートの技は、スプレッド・イーグルです。

「いいね」ボタンを押すと、最新情報をすぐに確認できます。