※本ページにはプロモーション(広告)が含まれています
アプリを『コンテナ』という軽量な箱にまとめて動かす仕組み。どの環境でも同じように動く実行環境を作れるため、開発と本番のズレを解消できる。
詳しい解説
Dockerは、アプリケーションとその動作に必要な依存ライブラリ・設定ファイル・OSの一部を『コンテナ』という軽量な単位にパッケージ化して配布・実行するためのプラットフォームです。2013年に登場して以降、サーバー構築やアプリ配布の方法を大きく変えました。
従来は『自分のPCでは動くのに本番では動かない』という環境差異問題がエンジニア泣かせでしたが、Dockerなら開発環境で動いたコンテナをそのまま本番に持っていけるため、『動くものが動く』状態を実現できます。
仮想マシン(VM)とよく比較されますが、VMがゲストOSごと丸抱えする重い仕組みなのに対し、DockerはホストOSのカーネルを共有する軽量方式で、起動が数秒と非常に速く、1台のマシン上で数十〜数百のコンテナを同時に動かせます。
基本の使い方は、`Dockerfile` というテキストファイルに『ベースOS』『インストールするパッケージ』『実行コマンド』を記述し、`docker build` でイメージを作成、`docker run` でコンテナとして起動、という流れです。作ったイメージはDocker HubやGitHub Container Registryといったレジストリで共有でき、世界中の開発者が作った既製イメージ(PostgreSQL、Redis、Node.jsなど)もワンコマンドで利用できます。
複数のコンテナをまとめて管理する場合は `docker compose`、さらに大規模な本番運用にはKubernetes(後述)と組み合わせるのが定番です。
新しく参加したメンバーに開発環境を用意する場面を考えてください。従来は『PHPのバージョンはこれ』『MySQLはこの設定』と手順書を渡して半日がかりのセットアップでしたが、Dockerなら `docker compose up` のひとコマンドで全サービスが立ち上がります。本番サーバーへの反映も同じコンテナを配置するだけなので、ズレが起きません。『どこで動かしても同じ』が実現する魔法の箱です。
別の呼び方
Dockerコンテナ
コンテナ技術
minto.tech スマホ(Android/iPhone)・PC(Mac/Windows)の便利情報をお届け! 月間アクセス160万PV!スマートフォン、タブレット、パソコン、地デジに関する素朴な疑問や、困ったこと、ノウハウ、コツなどが満載のお助け記事サイトはこちら!