InfraAcademy

InfraAcademy Blog

Dockerの始め方を初心者向けに解説|インストールからコンテナ起動まで

| #Docker #IT初心者 #コンテナ技術
Linuxをブラウザで試してみる

Linux・ネットワーク・AWSを、環境構築なしで実践学習できます

こんにちは、インフラエンジニアの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 rundocker 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コマンドやネットワークの部分で止まってしまった方は、基礎から順番に学び直してみるのもおすすめです。

InfraAcademyでインフラを実践的に学ぶ

Dockerを初めて触る方は、まず今日ひとつコンテナを起動してみてください。

最初のdocker runができれば、Docker学習の一番大きな壁はすでに越えています。そこからDockerfile、Docker Composeへと少しずつ進んでいきましょう。

Next Action

記事で読んだ内容を、講座で実装してみましょう

InfraAcademyでは、ブラウザ上でLinuxやネットワークの実践環境を使いながら学習できます。無料で始められる講座から、学習の流れを試せます。

この記事を書いた人

ryu

InfraAcademy運営 / エンジニア

エンジニア歴10年。Linux、ネットワーク、クラウドを中心に、実務で役立つインフラ技術を初心者にもわかりやすく解説しています。

X: @ryu63614894

Related

関連記事

ブログ一覧へ

Roadmap

まずはこの4講座から

ログインすれば無料で始められる講座です。気になったテーマから手を動かして学べます。

講座一覧を見る