結論:Dockerは「イメージを取ってきて(pull)→コンテナとして起動する(run)」の2ステップさえ分かれば、最初の一歩は誰でも動かせます。しかもインストール不要でブラウザ内のシミュレータを使えば、今この瞬間に docker run を打って結果を確認できます。
Dockerの「使い方」でまず押さえること
Dockerの学習でつまずく人の多くは、「イメージ」と「コンテナ」の違いが曖昧なまま docker run を打って混乱しています。ここは最初に整理しておく価値があります。
- イメージ(image)=アプリと、それを動かすのに必要なライブラリ・設定を1つにまとめた「設計図」。読み取り専用。
- コンテナ(container)=そのイメージを実際に動かした「実体」。1つのイメージから何個でも作れる。
この関係は Wiki のコンテナやDockerの項目でも図解しているので、用語の意味だけ先に確認したい人はそちらもどうぞ。
手を動かして体で覚えたい場合は、Dockerコースの「Dockerとは」と「イメージとコンテナ」がこの違いを最初に扱っています。このコースは第1章の導入(読み物)を除き、第2章以降はブラウザ内のシミュレートDocker端末で実際にコマンドを打って進められます。インストールも会員登録も不要です。
docker run で最初のコンテナを動かす
Dockerの動作確認としてもっとも定番なのが docker run hello-world です。このコマンド1つで、Dockerの基本の流れがすべて体験できます。
- ローカルに
hello-worldイメージがあるか探す - 無ければ Docker Hub から pull(ダウンロード)する
- そのイメージからコンテナを作って起動する
- コンテナが出力したメッセージを画面に表示する
- 仕事を終えたコンテナは**終了(exited)**する
つまり docker run は「イメージが無ければ取ってきて、コンテナを作って動かす」までを一気にやってくれるコマンドです。この一連の流れは、「はじめてのコンテナ」でそのまま端末に打ち込んで確認できます。
もう少しコンテナの中身を意識したいときは、docker run <イメージ> [コマンド] という形で、コンテナの中で実行するコマンドを指定できます。たとえば docker run alpine echo "Hello from a container" は、軽量Linuxである alpine のコンテナを作り、その中で echo を実行し、終わったらコンテナも終了する、という流れです。コンテナは「1つのプロセスを動かすための箱」だと考えると理解しやすくなります。詳しい仕組みは「docker run ― イメージからコンテナを起動する」で解説しています。
イメージそのものを個別に扱いたい場合は、「docker pull ― イメージを取ってくる」と「docker images ― 手元のイメージを一覧する」も合わせて動かしてみてください。
コンテナ 動かし方の続き:確認・停止・片付け
docker run で起動したあと、初心者が次に困るのは「今どんなコンテナが動いているか分からない」「止め方・消し方が分からない」という点です。ここも実在の一連の流れで押さえられます。
- 今動いている(あるいは動いていた)コンテナの状態を見る → 「docker ps ― コンテナの状態を確認する」
- バックグラウンドで常駐させ、外部からポートで繋ぐ → 「-d と -p ― 常駐させて外から繋ぐ」
- コンテナの中の様子を後から覗く → 「logs と exec ― 中をのぞく」
- 止める・消す → 「stop / start / rm ― 止めて、消す」
- 不要なイメージやコンテナをまとめて片付ける → 「rmi と prune ― イメージと不要物の片付け」
この一連の流れ(第3章「コンテナを動かす・止める」)まで動かせば、docker run で起動したコンテナを自分でコントロールできるようになります。
自分でイメージを作る(Dockerfile / docker build)
既存のイメージを動かすだけでなく、「自分のアプリをDocker化したい」と思ったら、次は Dockerfile の出番です。Dockerfileは、イメージの作り方を記したテキストの設計図で、これをもとに docker build でイメージを焼き、docker run で動かします。
- 設計図の書き方 → 「Dockerfileとは ― イメージの設計図」
- 設計図からイメージを作る → 「docker build ― 設計図からイメージを焼く」
- 作ったイメージを実際に動かす → 「自作イメージを動かす ― ビルドから起動まで」
ここまで(第4章)もすべてブラウザ内で実行できます。「Dockerfileを書いてbuildして自分のイメージを動かす」という一連の流れを、環境構築なしで体験できるのはこのコースの強みです。
つまずきやすいところ
初心者がDockerでよく引っかかるのは、次のようなポイントです。
- 「コンテナを止めたらデータが消えた」 ― コンテナは基本的に使い捨てで、コンテナ内に書いたファイルは
rmすると一緒に消えます。データを残したい場合は、ボリューム(docker volume)やバインドマウント(-v)を使う必要があります。この理由と対処は「コンテナは使い捨て ― なぜデータが消えるのか」と「-v でマウントする ― コンテナに保管庫をつなぐ」で扱っています。 - 「複数のコンテナ(アプリ+DBなど)を毎回手で立ち上げるのが面倒」 ― こういうときは
docker composeでまとめて定義・起動するのが定石です。composeファイルの書き方と「docker compose up ― まとめて起動する」を参照してください。 - コマンドの意味やLinuxの基礎コマンド自体に不安がある ― Dockerのコンテナ内はLinuxであることが多いので、
lsやcdなどの基本操作に不安がある場合は、Linuxコースの「pwd と ls ― 今どこ?何がある?」から先にブラウザで慣れておくと理解が早くなります。
次に読む
- Dockerコース トップ ― 全8章・第2章以降はブラウザで実行可能
- 「イメージとコンテナ ― 設計図と実体」 ― 用語の混乱を最初に解消する
- 「docker compose down ― まとめて片付ける」 ― compose で立てたものを片付ける手順
- 「コンテナのネットワーク ― bridge・host・none」 ― コンテナ同士を繋ぐ次のステップ
- Wiki: コンテナとは / Dockerとは ― 用語だけ先に押さえたい人向け