投稿日:
2018年1月22日
最終更新日:
Dockerfileに設定を記述して実行する方法
YouTubeも見てね♪
Anker PowerCor
旅行には必須の大容量モバイルバッテリー!
【最新機種】GoPro hero11 Black
最新機種でVlogの思い出を撮影しよう!
[ノースフェイス] THE NORTH FACE メンズ アウター マウンテンライトジャケット
防水暴風で耐久性抜群なので旅行で大活躍です!
ペヤング ソースやきそば 120g×18個
とりあえず保存食として買っておけば間違いなし!
モンスターエナジー 355ml×24本 [エナジードリンク]
脳を活性化させるにはこれ!
BANDAI SPIRITS ULTIMAGEAR 遊戯王 千年パズル 1/1スケール
もう一人の僕を呼び覚ませ!!
サンディスク microSD 128GB
スマホからSwitchまで使える大容量MicroSDカード!
目次
Dockerfileとは?
以前、コチラの記事にて、Docker For Macをインストールし、コマンド実行でHello worldを表示して見ました。
ただ、シンプルな実行内容のためコマンド引数で実行できたものの、もっと複雑な処理を実行した場合はコマンド引数では限界があります。
そんな時は、Dockrfileを作成してみましょう。
メリット
・Dockerfileは複雑なDockerの実行命令をファイル管理可能
→ 設定ファイルとして管理することにより、可読性が上がりファイルを渡すことで他のPC環境でも同じ処理が簡単に実行出来ます。
・image管理
→ コマンド実行だと毎回同じようなコマンドを叩く必要があるが、Dockerfileを作ってビルドすることでimageと呼ばれるデータを作ることが出来ます。
また、一度このimageファイルを作れば毎回ビルドする必要はなく、imageファイルを実行することで同じ動きを行うことが可能です。
手順
Dockerfileの作成
まずはDockerfileを作成してみましょう。
以下のDockerfileファイルを作成してください。
1
2
3
4
|
FROM ubuntu
RUN echo "now building..."
CMD echo 'Hello world'
|
imageファイルの作成
Dockerfileからイメージファイルを作成するには以下のコマンドを実行します。
1 |
docker build ./ -t hello_world
|
-tオプションは作成するimageファイルにタグ(名前)をつけたい場合に指定します。
今回は分かりやすくするためにhello_worldという名前をつけました。
ちなみに、
・RUN -> ビルド時に実行されるコマンド
・CMD → イメージ実行時に起動されるコマンド
です。
実行後に以下のコマンドでimages一覧を表示してみましょう。
1 |
docker images
|
正常にhello_worldというimageが作成されていますね。
imageファイルの実行
以下のコマンドで作成したimageファイルを作成してみましょう。
1 |
docker run hello_world
|
正常に実行されました。
dockerコンテナ
imageファイルを実行するとコンテナというものが作成されます。
以下のコマンドで確認出来ます。
1 |
docker ps -a
|
-aオプションは停止しているコンテナも含め表示します。
※先ほど作成したhello_worldイメージは実行後にすぐに停止します
dockerはイメージとコンテナの関係性の理解が大切です。
コンテナの削除
一度コンテナが作成されると基本的には残り続けます。
不要なコンテナを削除して見ましょう。
先ほどのコマンドでCONTAINER IDが表示されていましたが、削除する場合はこのCONTAINER IDを指定することで削除が可能です。
1 |
docker rm {削除したいCONTAINER ID}
|
これでコンテナの削除が完了です。
イメージの削除
次にイメージを削除してみましょう。
気をつけないといけないのは、イメージを削除する場合は、先にイメージから作成したコンテナを削除しないと、
Error response from daemon: conflict: unable to delete {削除したいIMAGE ID} (must be forced) – image is being used by stopped container {利用しているCONTAINER ID}
が発生して、削除出来ないので気をつけましょう。
以下のコマンドでイメージを削除することが可能です。
1 |
docker rmi {削除したいIMAGE ID}
|
これでイメージの削除も完了です。
あとがき
今回はDockerfileの中身がとても少ないサンプルで紹介しましたが、システム開発でDockerfileを使う場合はものすごく複雑な記述になるので、Dockerfileの恩恵を受けることになります。
Dockerfileを使うデメリットはほとんどないので皆さんもDockerfileを作成するように心がけてみましょう。