【どっかー】
Docker とは?
最終更新:
💡 アプリを「コンテナ」に入れて、別の環境でも同じように動かしやすくする
アプリケーションを「コンテナ」という単位にまとめて、開発・配布・実行するためのプラットフォーム。アプリと必要な部品を一緒に包むので、環境の違いによる不具合を減らせる。
📌 このページのポイント
- Dockerfileにイメージの作り方を書き、ビルドしてイメージを作る
- イメージは読み取り専用のテンプレートで、そこからコンテナを起動する
- Docker Hubなどのレジストリでイメージを公開・共有できる
- アプリに必要なものをコンテナに含めるので、環境ごとの差による「動かない」を減らせる
Dockerを使う理由は?
イメージとコンテナは何が違うの?
イメージは、コンテナを作るための手順が入った読み取り専用のテンプレート。コンテナは、そのイメージから起動した実行中のものだよ。Dockerfileという設計図からイメージをビルドして、1つのイメージから同じコンテナをいくつも起動できるんだ
イメージのサイズを小さくするには?
公式のベストプラクティスには、①マルチステージビルドでビルド用と最終出力を分ける、②目的に合う小さなベースイメージを選ぶ(例としてAlpineは6MB未満)、③.dockerignoreでビルドに関係ないファイルを除く、が挙げられているよ。ビルドを速くするにはキャッシュも大事。あるレイヤーが変わると、それより後ろのレイヤーはすべて作り直しになるから、変わりにくい手順を先に書くのがコツだね
Dockerのセキュリティで気をつけることは?
まとめ:ざっくりこれだけ覚えればOK!
「Docker」って出てきたら「アプリをコンテナにまとめて、環境の差を減らして動かすツール」と思えればだいたいOK!
📖 おまけ:英語の意味
「Docker」 = ドッカー
💬 英語のdockは、船の荷物を積み降ろしする場所のこと。荷物を入れるコンテナを扱う名前として覚えやすいね。名前の由来についての公式の説明は、ここでは確認していないよ