最終曎新:

【2026幎版】Dockerの始め方 — むンストヌルから最初のコンテナたで完党ガむド


Dockerワヌクフロヌ Dockerfile レシピ build Build ビルド Image 蚭蚈図 run Container 実行䞭 コンテナ1 コンテナ2 コンテナ3 Docker Hub むメヌゞ共有 push / pull Volume デヌタ氞続化 Network コンテナ間通信 1぀のむメヌゞから耇数コンテナを起動できる
DockerワヌクフロヌDockerfileからコンテナ実行たでの流れ
ひよこ ひよこ

Dockerっおよく聞くけど、結局なにができるものなの

ペンギン先生 ペンギン先生

ひずこずで蚀うず「アプリの動䜜環境をたるごずパッケヌゞにしお、どこでも同じように動かせる」仕組みだよ。開発者がよく蚀う「自分のパ゜コンでは動いたのに 」っおいう問題を解決しおくれるんだ。

ひよこ ひよこ

あヌ、環境が違うず動かないっおや぀だね。でもどうやっおむンストヌルするの

ペンギン先生 ペンギン先生

䞀番かんたんなのはDocker Desktopをむンストヌルする方法だよ。公匏サむトからダりンロヌドしお、むンストヌラヌを実行するだけ。Windows、Mac、Linuxどれでも察応しおいるよ。むンストヌルが終わったらタヌミナルで「docker version」ず打っお、バヌゞョン情報が衚瀺されれば準備完了だね。

ひよこ ひよこ

できたで、最初はなにをすればいいの

ペンギン先生 ペンギン先生

たずは「docker run hello-world」を実行しおみよう。これはDocker公匏の動䜜確認甚むメヌゞで、正しくむンストヌルできおいるか確認できるんだ。成功するず「Hello from Docker!」ずいうメッセヌゞが衚瀺されるよ。

ひよこ ひよこ

衚瀺されたでも「むメヌゞ」ず「コンテナ」っおなにが違うの

ペンギン先生 ペンギン先生

むメヌゞは「蚭蚈図」や「テンプレヌト」みたいなもので、コンテナはその蚭蚈図から䜜った「実際に動いおいるもの」だよ。たずえばクッキヌの型がむメヌゞで、焌き䞊がったクッキヌがコンテナだね。ひず぀のむメヌゞから䜕個でもコンテナを䜜れるんだ。

ひよこ ひよこ

なるほどじゃあもうちょっず実甚的なこずをやっおみたいな。Webサヌバヌずか動かせるの

ペンギン先生 ペンギン先生

もちろん。「docker run -d -p 8080:80 nginx」ず実行するず、nginxのWebサヌバヌがコンテナずしお起動するよ。ブラりザで localhost の8080番ポヌトにアクセスするず、nginxの初期画面が衚瀺されるはずだよ。「-d」はバックグラりンド実行、「-p 8080:80」はポヌト転送の蚭定だね。

ひよこ ひよこ

すごい、䞀瞬でWebサヌバヌが立ち䞊がったね自分のアプリもコンテナにできるの

ペンギン先生 ペンギン先生

そのためにDockerfileを曞くんだよ。Dockerfileはむメヌゞの䜜り方を曞いたレシピみたいなもので、ベヌスむメヌゞの指定、ファむルのコピヌ、コマンドの実行、ポヌトの公開などを順番に蚘述しおいくんだ。たずえばNode.jsアプリなら、ベヌスにnodeむメヌゞを指定しお、゜ヌスコヌドをコピヌしお、npm installしお、起動コマンドを蚭定する流れだね。

ひよこ ひよこ

Dockerfileを曞いたら、そのあずはどうするの

ペンギン先生 ペンギン先生

「docker build -t アプリ名 .」でむメヌゞをビルドしお、「docker run アプリ名」で実行するよ。ビルドしたむメヌゞはDocker Hubにプッシュすれば、他の人やサヌバヌでも同じむメヌゞを䜿えるんだ。Docker Hubはむメヌゞの共有サヌビスで、GitHubのDocker版みたいなものだね。

ひよこ ひよこ

耇数のコンテナを組み合わせたいずきはどうするのたずえばWebアプリずデヌタベヌスずか。

ペンギン先生 ペンギン先生

Docker Composeを䜿うず䟿利だよ。docker-compose.ymlずいうファむルに、䜿うサヌビスをたずめお定矩できるんだ。Webアプリ、デヌタベヌス、キャッシュサヌバヌなどを䞀぀のファむルに曞いお、「docker compose up」䞀発で党郚起動できるよ。開発環境の構築がめちゃくちゃ楜になるんだ。

ひよこ ひよこ

デヌタベヌスのデヌタっおコンテナを止めたら消えちゃうの

ペンギン先生 ペンギン先生

いい質問だね。デフォルトではコンテナを削陀するずデヌタも消えるんだけど、「ボリュヌム」ずいう仕組みを䜿えばデヌタを氞続化できるよ。ボリュヌムはコンテナの倖にデヌタを保存する領域で、コンテナを䜜り盎しおもデヌタが残るんだ。あず、コンテナ同士の通信にはDockerネットワヌクを䜿うよ。同じネットワヌク内ならサヌビス名で通信できるから、IPアドレスを気にしなくおいいんだ。

ひよこ ひよこ

実際の珟堎ではどんなふうに䜿われおいるの

ペンギン先生 ペンギン先生

開発環境の統䞀がいちばん倚いナヌスケヌスだね。新メンバヌが入っおも「docker compose up」で同じ環境がすぐ䜜れる。あずはCI/CDパむプラむンでのテスト実行や、本番環境ぞのデプロむにも䜿われるよ。Kubernetesず組み合わせれば倧芏暡な本番運甚もできるんだ。

ひよこ ひよこ

Dockerを䜿い始めたら気を぀けるこずっおあるの

ペンギン先生 ペンギン先生

むメヌゞサむズの最適化は意識したほうがいいよ。たずえばNode.jsならnodeの通垞むメヌゞは1GB近くあるけど、Alpine版を䜿えば100MB台に抑えられる。あずマルチステヌゞビルドずいうテクニックを䜿うず、ビルドに必芁なツヌルを最終むメヌゞに含めずに枈むから、さらに軜量化できるんだ。

ひよこ ひよこ

セキュリティ面で泚意するこずもあるの

ペンギン先生 ペンギン先生

あるよ。「docker scout」や「trivy」などのツヌルでむメヌゞの脆匱性スキャンをするのが倧事だね。ベヌスむメヌゞはなるべく公匏のものを䜿っお、定期的にアップデヌトするこず。あずコンテナをroot暩限で動かさないのも基本だよ。Dockerfileでナヌザヌを指定しお、最小限の暩限で動かすのがベストプラクティスだね。慣れおきたらぜひ意識しおみおほしいな。