よろずやIT
プログラミング

Dockerとは?「環境ごと持ち運べる箱」の仕組み

執筆・監修:よろずやIT編集部|編集方針を見る

結論:まずここだけ読めばOK

詳しい手順・原因は、この下で解説しています。

プログラミングのイラスト

Dockerとは何を解決する技術なのか

プログラミングの現場では、「自分のパソコンでは正常に動くプログラムが、別の人のパソコンでは動かない」という問題がよく起こります。これは、パソコンごとにインストールされているソフトのバージョンや設定が微妙に異なることが原因です。Docker(ドッカー)は、この問題を解決するために生まれた技術です。

「コンテナ」という考え方

Dockerの核となる考え方が「コンテナ」です。コンテナとは、プログラムを動かすために必要な環境(必要なソフト、設定、ライブラリなど)をひとまとめにした、持ち運び可能な箱のようなものです。以前の記事で紹介した「コンテナとVM(仮想マシン)の違い」でも触れた通り、この仕組みは元のOSの一部を共有しながら動作するため、非常に軽量なのが特徴です。

引っ越しの例で考えてみる

Dockerの仕組みは、引っ越しに例えるとイメージしやすくなります。

このように、コンテナという単位で環境ごと持ち運べるため、「自分の環境では動くのに、別の環境では動かない」という問題が起こりにくくなります。

Dockerを使うことの主なメリット

実際の開発現場での使われ方のイメージ

例えば、新しくチームに加わったメンバーが開発を始める際、従来は必要なソフトウェアを1つ1つ手作業でインストールし、バージョンを合わせる作業に多くの時間がかかっていました。Dockerを使う環境では、あらかじめ用意されたコンテナの設定ファイルを読み込むだけで、他のメンバーとまったく同じ開発環境を、短時間で整えられるようになります。この「環境構築の手間を大幅に減らせる」点が、多くの開発現場で評価されている理由です。

どんな場面で使われているか

Web開発の現場はもちろん、複数人のチームでの開発、さらには実際にサービスを稼働させるサーバー環境の構築など、幅広い場面でDockerは活用されています。

覚えておきたいこと

Dockerは「プログラムを動かすための環境そのものを、箱に詰めて持ち運べるようにする」技術です。難しく感じるかもしれませんが、根底にある考え方はとてもシンプルです。環境構築にかかる時間と手間を大きく減らせる点が、多くの開発現場で支持されている理由です。

関連記事:Kubernetesとは

あわせて読みたい:IaC(Infrastructure as Code)とは

PRDocker+Kubernetesステップアップ入門 〜コンテナのしくみ、使い方から、今どきのプラクティス、セキュリティまで 【電子書籍】[ 徳永航平 ]

Docker+Kubernetesステップアップ入門 〜コンテナのしくみ、使い方から、今どきのプラクティス、セキュリティまで 【電子書籍】[ 徳永航平 ]

¥2,420

楽天で見る
SHAREXLINEはてブ

よくある質問

Q.Dockerと以前紹介した『VM(仮想マシン)』は同じものですか?

A.似た目的を持つ技術ですが、仕組みは異なります。VMはOSごと丸ごと再現するのに対し、Dockerのコンテナは元のOSの一部を共有しながら、必要な部分だけを軽量に分離します。詳しくは『コンテナとVMの違いとは』の記事で解説しています。

関連記事

最新のIT関連書籍 トップ10

PR / 楽天市場の売れ筋ランキングを定期的に取得しています。価格は変動する場合があるため、購入前に各ストアでご確認ください。