Skip to content
Menu
プログラミング教室 M&Co.
  • はじめに
  • 当スクールの料金
プログラミング教室 M&Co.
2025年1月19日2025年1月19日

Dockerの基礎知識その1

Dockerをご存知ですか?私のシステム開発では使わない日は無いくらい、必須の開発ツールです。

一言でいうと、PCの中に小さな仮想PCを作ることが出来るようになります。

仮想PCは、さまざまなOS、PHPだったら様々なバージョンがあらかじめインストールされた状態で用意されています。

起動も数秒で完了し、すぐに使用することができます。

私は開発環境の構築にも使用していますし、複数のDockerを組み合わせて本番環境を構築することもあります。

Dockerでまず覚えて欲しいのは、コンテナとイメージの2つです。この2つが基本です。

この記事では、Dockerの基礎知識、Dockerの使い方、Dockerのメリット・デメリットについて記載します。

DockerのインストールとHello World!

Dockerは小さな仮想PCです。Dockerを使用するには、「Docker Desktop」をインストールしましょう。

Docker Desktopをインストール出来たら、早速起動してみましょう。

% docker run hello-world

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (arm64v8)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

%から始まる行が実行するコマンドです。ターミナルや、コマンドプロンプトから実行します。

このコマンドは、hello-worldのDockerイメージをダウンロードして、起動する。という動きをします。

hello-worldのDockerイメージは、起動するとメッセージを表示するという処理が設定されたDockerイメージです。

Dockerがオフィシャルのイメージとして用意しています。

上記の表示が出来たら成功です。

Dockerイメージ

Dockerを起動するためには、イメージが必要になります。先ほどは、hello-worldのイメージをダウンロードして使用しました。

ダウンロードしたイメージを見てみましょう。

% docker images
REPOSITORY                                                                                       TAG       IMAGE ID       CREATED         SIZE
hello-world                                                                                      latest    ee301c921b8a   20 months ago   9.14kB

はい、イメージがダウンロードされていますね。サイズも9.14kbと非常にコンパクトです。

Dockerイメージを使って起動させるためには、Dockerイメージを元にコンテナを作成する必要があります。

次は、Dockerコンテナを見てみましょう

Dockerコンテナ

Dockerコンテナは、Dockerイメージを元に作られます。Dockerを起動するということは、Dockerコンテナを起動させるという意味になります。

Dockerコンテナも作成/実行すると、次回の起動では、同じコンテナが起動します。

作成されたコンテナを見てみましょう。

% docker ps -a
CONTAINER ID   IMAGE                                                                                         COMMAND                   CREATED          STATUS                      PORTS                                      NAMES
fe1ca6a3c2b6   hello-world                                                                                   "/hello"                  14 minutes ago   Exited (0) 14 minutes ago                                              vigilant_brahmagupta

存在してますね。docker run イメージ名を実行すると、新しくDockerコンテナが作成されます。

次は、Dockerコンテナを起動させてみましょう。

% % docker container  start -a vigilant_brahmagupta

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (arm64v8)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/
pta

さっきと同じ表示が出てきました。vigilant_brahmaguptaがDockerコンテナ名です。

今回は、Dockerコンテナからの起動を行ったため、Dockerイメージのダウンロードが発生しませんでした。これも大事なことです。毎回ダウンロードが行われるのでは、遅くて使い物になりませんよね。

-aオプションを使用しているのは、標準出力を確認するためです。-aオプションを使わないで実行するとどうなるのかも確認しておくと良いです。

Dockerのメリット

Dockerを使用するメリットは、たくさんありますが、特に思いつくことを紹介します。

  • Dockerコンテナ内に必要なものがインストールされるため、ホストPCに不要なライブラリなどをインストールする必要がない。ホストPCとは完全に独立した環境を用意することができます。
  • システム開発を行っていると、PCに複数の開発環境が作成されていることが多くあると思います。この環境をDockerコンテナに閉じ込めることで、複数の環境があったとしても、それぞれが依存することなく綺麗に開発環境を構築することができます。
  • 本番環境でも、Dockerコンテナをベースとして構築することで、本番環境とかなり近い環境で開発を進めて行くことができます。
  • 考えると他にもたくさんありそうです。Dockerを使用し、扱いに慣れておくことを強くおすすめします。

Dockerのデメリット

Dockerを使用するデメリットは、、、ほとんど無いんですが、強いてあげるとすれば学習コストが必要になることです。

これまでは、開発環境が必要になると専用のPCを用意して、OSをインストールしてDBをインストールしてなど、結構な労力が必要でした。

Dockerを使う場合でも、OSの知識が必要になったりすることはもちろんあります。

そのための学習コストはどうしても必要になってきます。

Dockerの次のステップ

Dockerは面白く、奥が深いです。伝えたいことが他にもあります。

これは別の記事にします。次のステップでは、下記のことをとりあげたいと思います。

  • Dockerビルド
  • Dockerfile
  • Docker Compose
  • Docker Volume

まとめ

Dockerは今後も必ず使っていく技術になります。Dockerよりも別の、ものができてくる可能性もありますが、仮想化の技術がなくなることはありません。
今のうちにDockerの仕組みを理解し、今の開発スタイルに慣れておきましょう。

それでは、次の記事をお楽しみに。

©2025 プログラミング教室 M&Co.