Loading
BLOG 開発者ブログ

2022年6月28日

Dockerfileからコンテナを起動するまでの流れを紹介させて頂きたく

今回は独学でDockerを少し触ったことあるけど、実はコンテナ起動までの流れを良く分かっていない方向けに、Dockerfileからコンテナを起動するまでの流れを紹介させていただきます。

目次

はじめに

こんにちは。
クラウドソリューショングループのyoshikawa.kです。

今回はローカル環境にDockerをインストールしたはいいものの、この後何をすればいいのか分からない!

という方向けに、Dockerfileの作成からdockerコンテナを起動するまでの流れを紹介していきます。

※他記事ではアプリ実行環境用のコンテナ解説記事が多かったので、今回は仮想的なパソコン(ubuntu)をコンテナで起動する方法について執筆しました。

 

Dockerfileを用意する

FROM ubuntu:latest
RUN apt update -y && apt install -y iputils-ping net-tools

上記Dockerfileをローカル環境に作成後、作業ディレクトリに格納してください。

たった2行しか書かれていないファイルですが、このDockerfileから立派なコンテナ(ubuntu)を起動することが出来ます。

記述内容の簡単な解説は以下の通りです。

  • FROM:ベースイメージ(今回はubuntuのベースイメージ)を指定
  • RUN:Dockerイメージを作成するときに実行するコマンドを指定(今回はpingコマンドをインストールしています)

 

イメージからコンテナを起動する

次はDockerfileを格納した作業ディレクトリに移動し、以下コマンドを順に実行してDockerイメージを作成してください。

$ docker image build -t test-image:v1 .
$ docker images

カレントディレクトリ(.)にあるDockerfileを元にイメージ名「test-image」とタグ名「v1」のdockerイメージを作成しています。その後に正しくDockerイメージが作成されているかイメージを一覧表示して確認しています。

docker run --name test-container1 -it test-image:v1 /bin/bash

続けて上記コマンドを実行することで、先ほど作成したdockerイメージ「test-image:v1」からdockerコンテナ「test-container」を起動し、起動と同時に/bin/bashコマンドが実行されることでdockerコンテナ内に入ることが出来ます。

問題なければ、無事にコンテナ内に入ることが出来ます。

 

コンテナ内でpingコマンドを打つ

コンテナログイン後、早速ですがpingコマンドが打てるかどうか確認しましょう!!

$ ping www.isoroot.jp

無事にpingコマンドはインストールされていますね!

 

せっかくなのでcurlコマンドも実行してみましょう。

$ curl https://www.isoroot.jp/

ですがcurlコマンドはインストールしていないので、curlコマンドを打つことが出来ません。

$ exit

上記コマンドを打って、コンテナからログアウトしましょう。

 

Dockerfileを修正する

FROM ubuntu:latest 
RUN apt update -y && apt install -y iputils-ping net-tools curl

改めてcurlをインストールするようにDockerfileを追加修正を行い、保存してください。

 

再度イメージからコンテナを起動する

$ docker image build -t test-image:v2 .
$ docker run --name test-container2 -it test-image:v2 /bin/bash

イメージ名とコンテナ名を微修正し、再度上記コマンドを打ってイメージ作成→コンテナ起動を行ってください。

 

コンテナ内にてcurlコマンドを打つ

$ ping www.isoroot.jp

先にpingコマンドも問題なく実行されるか確認し、

 

$ curl https://www.isoroot.jp/

curlコマンドを打つと無事にアイソルート公式HPのhtmlファイルが表示されました。

 

後片付け

$ docker container ls -a
$ docker container prune
# 途中で「y」を入力し、同意する
$ docker container ls -a

上記コマンドを順に実行することで、コンテナ削除を行えます。

  1. コンテナ一覧を表示
  2. 全コンテナを削除
  3. 再度コンテナ一覧を表示して、コンテナが削除されているのを確認する

 

$ docker images
$ docker rmi $(docker images -a -q)
$ docker images

上記コマンドを順に実行することで、コンテナと同様にイメージの削除を行えます。

  1. イメージ一覧を表示
  2. 全イメージを削除
  3. 再度イメージ一覧を表示して、イメージが削除されているのを確認する

 

まとめ

以上がDockerfileからコンテナを起動し修正完了までの流れでしたが、Dockerというものをなんとなく理解したのではないでしょうか?

この記事がdocker初心者の道しるべになることを願っています。

のブログ