こんにちは、インフラエンジニアのryuです。
今回は、Dockerをこれから勉強したい方向けに、Dockerの始め方をできるだけわかりやすく解説します。 Dockerという名前は聞いたことがあっても、コンテナやイメージなど知らない言葉が多く、最初は何から触ればよいのか迷いますよね。
私もDockerを勉強し始めたときは、Dockerfile、イメージ、コンテナ、Docker Composeなどの言葉が一気に出てきて、どこから覚えればよいのか分かりませんでした。
ただ、最初からすべて理解する必要はありません。まずはDockerをインストールして、実際にコンテナを1つ動かしてみると、少しずつ仕組みが見えてきます。
この記事では、Dockerを初めて触る方でも進められるように、インストールから基本コマンドまで順番に見ていきます。
Dockerとは?まずはざっくり理解しよう¶
Dockerは、アプリケーションを動かすために必要なプログラムや設定を、コンテナという単位にまとめて実行できる仕組みです。
たとえば、自分のパソコンでは動いたのに、別のパソコンやサーバーでは動かない。開発をしていると、このようなことは珍しくありません。
原因は、OSやライブラリのバージョン、設定ファイルなど、実行環境が少しずつ違うからです。
Dockerを使うと、アプリケーションと実行環境をまとめて扱いやすくなります。そのため、開発環境をそろえたり、サーバーへアプリケーションを配置したりするときに便利です。
Dockerを勉強していると、最初にいくつか似た言葉が出てきます。ここで簡単に整理しておきましょう。
| 用語 | 意味 | イメージ |
|---|---|---|
| Docker | コンテナを作成・実行するための仕組み | コンテナを動かす土台 |
| イメージ | コンテナの元になるテンプレート | 設計図 |
| コンテナ | イメージから実際に起動した環境 | 動いている実体 |
| Dockerfile | Dockerイメージの作り方を書くファイル | イメージのレシピ |
| Docker Compose | 複数のコンテナをまとめて管理する仕組み | Web+DBなどをまとめて起動 |
この段階では、なんとなく分かれば大丈夫です。
イメージとコンテナの違いをもう少し詳しく知りたい方は、先にこちらの記事を読んでおくと理解しやすいです。
【関連記事】Dockerとは?初心者向けにわかりやすく解説
Dockerは何から始めればよい?¶
Dockerを始めるときに、いきなりDockerfileを書いたり、Docker Composeを覚えたりする必要はありません。
まずは次の順番で進めるのがおすすめです。
Dockerをインストールする → コンテナを起動する → 状態を確認する → 停止・削除する
最初はこれだけで十分です。
実際にコマンドを入力して、コンテナが起動したり止まったりするのを見ると、Dockerがどのようなものなのか一気に分かりやすくなります。
Dockerをインストールする¶
Dockerを使うには、まず自分のパソコンにDockerをインストールします。
WindowsやMacで学習する場合は、Docker Desktopを利用すると始めやすいです。LinuxではDocker Engineを直接インストールして利用する方法もあります。
Windows・Macの場合¶
WindowsやMacでは、Docker DesktopをインストールするとDockerを使うための環境をまとめて準備できます。
インストール後にターミナルを開いて、次のコマンドを実行してみてください。
docker --version
Dockerのバージョンが表示されれば、Dockerコマンドを実行できる状態です。
たとえば、次のように表示されます。
Docker version 29.x.x, build xxxxxxx
細かいバージョン番号は環境によって異なるので、数字が同じでなくても問題ありません。
Linuxの場合¶
Linuxでは、Docker Engineをインストールして利用できます。
UbuntuやDebian、Fedoraなどディストリビューションによってインストール方法が少し違うため、公式ドキュメントを確認しながら進めるのがおすすめです。
Linuxへのインストール手順を詳しく知りたい方は、こちらの記事も参考にしてください。
【関連記事】LinuxにDockerをインストールする方法
最初のDockerコンテナを動かしてみよう¶
Dockerをインストールできたら、まずはコンテナを1つ動かしてみましょう。
最初に実行するなら、hello-worldが分かりやすいです。
docker run hello-world
このコマンドを実行すると、必要なDockerイメージが手元になければ自動的に取得され、そのイメージからコンテナが起動します。
メッセージが表示されれば、Dockerが正常に動作しています。
ここで大切なのは、コマンドを丸暗記することではありません。
docker runを実行すると、イメージをもとにコンテナが起動する。まずはこの流れを理解できれば十分です。
WebサーバーをDockerで起動してみよう¶
hello-worldだけでは少し物足りないので、次はWebサーバーを動かしてみましょう。
今回はNginxのコンテナを起動します。
docker run -d --name web -p 8080:80 nginx
少し長いコマンドですが、一つずつ見ると難しくありません。
| オプション | 意味 |
|---|---|
docker run |
コンテナを作成して起動する |
-d |
バックグラウンドで実行する |
--name web |
コンテナ名をwebにする |
-p 8080:80 |
PCの8080番ポートをコンテナの80番ポートにつなぐ |
nginx |
NginxのDockerイメージを使う |
コマンドを実行したら、ブラウザから次のURLへアクセスしてみてください。
http://localhost:8080
Nginxのページが表示されれば成功です。
たった1つのコマンドでWebサーバーが起動したのを見ると、Dockerの便利さが少し実感できるのではないでしょうか。
通常であればWebサーバーをインストールして設定する必要がありますが、Dockerではすでに用意されたイメージを使って、すぐに環境を起動できます。
Dockerで最初に覚えたい基本コマンド¶
コンテナを起動できたら、次は状態の確認や停止をしてみましょう。
Dockerには多くのコマンドがありますが、最初から全部覚える必要はありません。まずは次のコマンドを使えるようになれば、基本的な操作はできます。
起動中のコンテナを確認する¶
docker ps
先ほど起動したwebコンテナが一覧に表示されます。
停止しているコンテナも含めて確認したい場合は、次のようにします。
docker ps -a
コンテナのログを確認する¶
docker logs web
Webアプリやサーバーがうまく動かないときは、ログを見る機会が多くあります。
Dockerを使うようになるとdocker logsはよく使うので、最初のうちに一度試しておくとよいでしょう。
コンテナの中に入る¶
起動しているコンテナの中でコマンドを実行したい場合は、docker execを使います。
docker exec -it web sh
コンテナの中に入ったら、たとえば次のようなLinuxコマンドを実行できます。
pwd
ls
cat /etc/os-release
Dockerを理解するうえでは、Linuxの基本コマンドを知っているとかなり楽になります。
コンテナを停止・削除する¶
コンテナを停止する場合は、次のコマンドです。
docker stop web
停止したコンテナを削除する場合は、次のようにします。
docker rm web
Dockerでは、コンテナを作って、試して、不要になったら削除するという操作を何度も行います。
Dockerを学ぶなら次はDockerfileを触ってみよう¶
ここまでできれば、Dockerの最初の一歩は十分です。
次に学びたいのがDockerfileです。
先ほどはDocker Hubなどに用意されているNginxイメージをそのまま使いましたが、実際の開発では自分のアプリケーションに合わせたDockerイメージを作りたくなります。
そのときに使うのがDockerfileです。
たとえば、とても単純なDockerfileは次のように書けます。
FROM nginx:latest
COPY ./html /usr/share/nginx/html
FROMで元になるイメージを指定し、COPYで自分のファイルをコンテナ内へコピーしています。
このDockerfileからイメージを作成する場合は、次のコマンドを実行します。
docker build -t my-nginx .
作成したイメージからコンテナを起動する場合は、先ほどと同じdocker runを使います。
docker run -d -p 8080:80 my-nginx
複数のコンテナを使うならDocker Compose¶
Webアプリケーションでは、Webサーバーだけでなく、データベースやキャッシュなど複数のサービスを一緒に使うことがあります。
毎回それぞれに長いdocker runコマンドを書くのは大変ですよね。
そこで使われるのがDocker Composeです。
現在は、次のようなdocker composeコマンドで複数のコンテナをまとめて操作できます。
docker compose up -d
停止するときは次のコマンドです。
docker compose down
Docker Composeまで使えるようになると、Webアプリケーションの開発環境をかなり作りやすくなります。
最初はdocker runやdocker psなどの基本コマンドに慣れてから進むと理解しやすいです。
【関連記事】Docker Composeとは?dockerコマンドとの違いを解説
Docker初心者がつまずきやすいポイント¶
Dockerを勉強し始めると、思っていたよりエラーが多いと感じるかもしれません。
特に初心者のうちは、ポートの重複やDocker Desktopの未起動、コンテナ名の重複などで止まりやすいです。
ただ、これは珍しいことではありません。
Dockerはコマンドだけでなく、Linux、ネットワーク、ポート番号、Webサーバーなど、インフラの基礎知識とつながっているからです。
たとえば-p 8080:80を見たときに、ポート番号の意味が分かると理解しやすくなります。コンテナの中に入ったときも、Linuxコマンドが分かれば状況を確認できます。
Dockerだけを単独で暗記するより、Linuxやネットワークと一緒に学ぶ方が、結果的には理解が早くなります。
Dockerは手を動かして覚えるのがおすすめ¶
Dockerは、本を読むだけよりも実際にコマンドを入力した方が理解しやすい技術です。
docker runで起動して、docker psで確認して、docker logsでログを見て、docker stopで止める。この一連の流れを何度か繰り返してみてください。
最初はコマンドを見ながらで大丈夫です。
何度か触っているうちに、イメージとコンテナの違いや、Dockerがどのように環境を作っているのかが少しずつ分かってきます。
InfraAcademyでは、Linuxやネットワーク、Dockerなど、インフラに必要な知識を実際に手を動かしながら学べます。
Dockerを勉強していて、Linuxコマンドやネットワークの部分で止まってしまった方は、基礎から順番に学び直してみるのもおすすめです。
Dockerを初めて触る方は、まず今日ひとつコンテナを起動してみてください。
最初のdocker runができれば、Docker学習の一番大きな壁はすでに越えています。そこからDockerfile、Docker Composeへと少しずつ進んでいきましょう。





