Anker PowerCor
旅行には必須の大容量モバイルバッテリー!
[ノースフェイス] THE NORTH FACE メンズ アウター マウンテンライトジャケット
防水暴風で耐久性抜群なので旅行で大活躍です!
ペヤング ソースやきそば 120g×18個
とりあえず保存食として買っておけば間違いなし!
ドラゴンクエスト メタリックモンスターズギャラリー メタルキング
みんな大好き経験値の塊をデスクに常備しておこう!
Bauhutte ( バウヒュッテ ) 昇降式 L字デスク ブラック BHD-670H-BK
メインデスクの横に置くのにぴったりなおしゃれな可動式ラック!
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を作成するように心がけてみましょう。