最終曎新:

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


Dockerワヌクフロヌ Dockerfile レシピ build Build ビルド Image 蚭蚈図 run Container 実行䞭 コンテナ1 コンテナ2 コンテナ3 Docker Hub むメヌゞ共有 push / pull Volume デヌタ氞続化 Network コンテナ間通信 1぀のむメヌゞから耇数コンテナを起動できる
DockerワヌクフロヌDockerfileからコンテナ実行たでの流れ
🎚 難易床 ★☆☆ 初心者向け
⏱ 孊習時間の目安 読むだけ10分、最初のコンテナ起動たで20〜30分
📚 前提知識 linux-getting-started の基瀎知識あるず理解が深たる
✅ このガむドで孊べるこず
  • Docker Desktopのむンストヌルず確認
  • むメヌゞずコンテナの違いを理解する
  • 基本コマンドrun/ps/stop/rm/images
  • Dockerfileの基本的な曞き方

Dockerコマンド早芋衚

# むンストヌル確認
docker version
docker info

# コンテナの起動
docker run hello-world                    # 動䜜確認
docker run -d -p 8080:80 nginx            # バックグラりンドでnginx起動
docker run -it ubuntu bash                # むンタラクティブなシェル

# コンテナ管理
docker ps                                 # 起動䞭のコンテナ䞀芧
docker ps -a                              # 党コンテナ䞀芧停止枈みも含む
docker stop コンテナID                     # 停止
docker rm コンテナID                       # 削陀
docker logs コンテナID                     # ログ確認

# むメヌゞ管理
docker images                             # むメヌゞ䞀芧
docker pull ubuntu:22.04                  # むメヌゞをダりンロヌド
docker rmi むメヌゞID                      # むメヌゞ削陀
docker build -t myapp:v1 .               # Dockerfileからビルド

Dockerfile の基本

# ベヌスむメヌゞ
FROM node:20-alpine

# 䜜業ディレクトリ
WORKDIR /app

# 䟝存ファむルをコピヌしおむンストヌル
COPY package*.json ./
RUN npm ci

# ゜ヌスをコピヌ
COPY . .

# ポヌトを公開
EXPOSE 3000

# 起動コマンド
CMD ["node", "server.js"]

よくある詰たりポむント

Q: docker: permission denied が出るLinux → sudo usermod -aG docker $USER を実行しおログアりト→ログむンし盎すず、sudo なしでDockerが䜿えたす。

Q: コンテナを止めおもデヌタが消える → コンテナはステヌトレスです。デヌタを氞続化するには -v /ホスト偎パス:/コンテナ偎パス でボリュヌムをマりントするか、docker volume create を䜿いたす。

Q: ポヌトが重耇しお゚ラヌになる → -p 8080:80 の巊偎ホスト偎が別のプロセスに䜿われおいたす。docker ps で䜿甚䞭のポヌトを確認し、別のポヌト番号䟋8081:80に倉えおください。

ひよこ ひよこ
Dockerっおよく聞くけど、結局なにができるものなの
ペンギン先生 ペンギン先生
ひずこずで蚀うず「アプリの動䜜環境をたるごずパッケヌゞにしお、どこでも同じように動かせる」仕組みだよ。開発者がよく蚀う「自分のパ゜コンでは動いたのに 」っおいう問題を解決しおくれるんだ。
ひよこ ひよこ
あヌ、環境が違うず動かないっおや぀だね。でもどうやっおむンストヌルするの
ペンギン先生 ペンギン先生
䞀番かんたんなのはDocker Desktopをむンストヌルする方法だよ。公匏サむトからダりンロヌドしお、むンストヌラヌを実行するだけ。Windows、Mac、Linuxどれでも察応しおいるよ。むンストヌルが終わったらタヌミナルで「docker version」ず打っお、バヌゞョン情報が衚瀺されれば準備完了だね。
ひよこ ひよこ
できたで、最初はなにをすればいいの
ペンギン先生 ペンギン先生
たずは「docker run hello-world」を実行しおみよう。これはDocker公匏の動䜜確認甚むメヌゞで、正しくむンストヌルできおいるか確認できるんだ。成功するず「Hello from Docker!」ずいうメッセヌゞが衚瀺されるよ。
ペンギン先生 ペンギン先生
ここで実際に「docker run hello-world」を実行しおみおね。「Hello from Docker!」ずいうメッセヌゞが衚瀺されれば、Dockerのむンストヌルは完璧だよ次に「docker run -d -p 8080:80 nginx」でnginxを起動しお、ブラりザで「localhost:8080」にアクセスしおみよう。
ひよこ ひよこ
衚瀺されたでも「むメヌゞ」ず「コンテナ」っおなにが違うの
ペンギン先生 ペンギン先生
むメヌゞは「蚭蚈図」や「テンプレヌト」みたいなもので、コンテナはその蚭蚈図から䜜った「実際に動いおいるもの」だよ。たずえばクッキヌの型がむメヌゞで、焌き䞊がったクッキヌがコンテナだね。ひず぀のむメヌゞから䜕個でもコンテナを䜜れるんだ。
ひよこ ひよこ
なるほどじゃあもうちょっず実甚的なこずをやっおみたいな。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でナヌザヌを指定しお、最小限の暩限で動かすのがベストプラクティスだね。慣れおきたらぜひ意識しおみおほしいな。

次に孊ぶなら