Dockerfileからコンテナを起動するまでの流れを紹介させて頂きたく
今回は独学でDockerを少し触ったことあるけど、実はコンテナ起動までの流れを良く分かっていない方向けに、Dockerfileからコンテナを起動するまでの流れを紹介させていただきます。
目次
- はじめに
- Dockerfileを用意する
- イメージからコンテナを起動する
- コンテナ内でpingコマンドを打つ
- Dockerfileを修正する
- 再度イメージからコンテナを起動する
- コンテナ内にてcurlコマンドを打つ
- 後片付け
- まとめ
はじめに
こんにちは。
クラウドソリューショングループの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
上記コマンドを順に実行することで、コンテナ削除を行えます。
- コンテナ一覧を表示
- 全コンテナを削除
- 再度コンテナ一覧を表示して、コンテナが削除されているのを確認する
$ docker images $ docker rmi $(docker images -a -q) $ docker images
上記コマンドを順に実行することで、コンテナと同様にイメージの削除を行えます。
- イメージ一覧を表示
- 全イメージを削除
- 再度イメージ一覧を表示して、イメージが削除されているのを確認する
まとめ
以上がDockerfileからコンテナを起動し修正完了までの流れでしたが、Dockerというものをなんとなく理解したのではないでしょうか?
この記事がdocker初心者の道しるべになることを願っています。