1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ゼロから始めるDocker+Kubernetes実践 #1:Docker導入とコンテナ実行

Posted at

こんにちは!花木です。「理想のシステム運用」を目指す私たちの旅、いよいよ第1回です。
今回は、コンテナ技術の基礎となるDockerを、サーバーに導入し、簡単なアプリケーションを動かすところまでを実践してみましょう。


前提

本記事では、以下の環境を前提として解説を進めます。

  • OS: AlmaLinux
  • サーバーの状態: AlmaLinuxの導入直後で、初期パッケージ以外インストールされていないものとします

OSについては商用環境で高いシェアを誇る**Red Hat Enterprise Linux (RHEL)**と高い互換性を持つAlmaLinuxを選定しました。


1. Dockerのインストール

Dockerは、コンテナを扱うための必須ツールです。
AlmaLinuxにDockerをインストールするためには、公式のDockerリポジトリを追加してからインストールするのが最も確実です。

必要なパッケージのインストール

dnfコマンドを使用して、Dockerのインストールに必要なパッケージを準備します。

dnfとは、AlmaLinuxやCentOSなどのLinuxで使われる、ソフトウェアをインストール・管理するためのコマンドです。
例えるなら、スマートフォンのアプリストアのようなものです。ストアからアプリを検索してインストールするように、dnfを使うと、インターネット上のリポジトリから必要なソフトウェアを簡単にインストールできます。
Windowsでいうと、「Microsoft Store」や、最近注目されている「winget」に近い役割を果たします。

① 前提パッケージのインストール

まずは、dnf-plugins-coreなど、後続のコマンドで必要となるパッケージをインストールします。

sudo dnf install -y dnf-plugins-core epel-release

② Dockerリポジトリの追加

次に、Dockerの公式リポジトリを追加します。これにより、dnfがDockerのパッケージをどこから取得すればいいかを知ることができます。

sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

Docker本体のインストールと起動

③ Dockerのインストール

リポジトリの準備ができたら、Docker本体をインストールします。

sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

このコマンドでインストールしている主要なパッケージは以下の通りです。

  • docker-ce: Dockerのコアエンジンです。コンテナを実行するための主要なサービスが含まれています
  • docker-ce-cli: Dockerを操作するためのコマンドラインツールです。docker rundocker psといったおなじみのコマンドを使えるようにします
  • containerd.io: コンテナのライフサイクル(生成、起動、停止など)を管理する基盤となるソフトウェアです。Dockerはこれを利用して動作しています
  • docker-buildx-plugin: 様々なCPUアーキテクチャ(例:arm64, amd64)向けのイメージをビルドするための機能を追加します
  • docker-compose-plugin: 複数のコンテナをまとめて管理するためのツールであるdocker-composeの機能を追加します。#1の中では使いませんが、非常に便利なツールです

④ Dockerデーモンの起動と自動起動設定

systemctlコマンドを使用して、Dockerのサービスを起動し、サーバー起動時に自動で立ち上がるように設定します。

systemctlは、Linux上で動作するサービス(デーモン)を管理するためのコマンドです。例えるなら、パソコンの「スタートアップ設定」や「タスクマネージャー」のような役割を果たし、特定のプログラムを起動したり、停止したり、自動で起動するように設定したりできます。

sudo systemctl start docker
sudo systemctl enable docker

2. Dockerの動作確認

Dockerが正しくインストールされたかを確認しましょう。以下のコマンドを実行して、バージョン情報が表示されれば成功です。

docker --version

さらに、hello-worldという最小のコンテナを実行して、Dockerが正常に動作するかを確認します。

sudo docker run hello-world

このコマンドを実行すると、以下のようなメッセージが表示されるはずです。

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

もしこのメッセージが表示されたら、Dockerのインストールは完璧です。


3. 簡単なウェブサーバーの実行

次に、Dockerを使って簡単なウェブサーバーを動かしてみましょう。ここでは、軽量なウェブサーバーとして有名なNginxを例に挙げます。

Nginxコンテナの実行と確認

① Nginxコンテナの実行

docker runコマンドを使って、Nginxのコンテナを起動します。

sudo docker run -d -p 8080:80 nginx

このコマンドのオプションがそれぞれ何を意味しているかは以下の通りです。

  • -d: コンテナをバックグラウンドで実行(detached mode)
  • -p 8080:80: サーバーの8080番ポートを、コンテナ内の80番ポートに接続(port mapping)
  • nginx: 実行するコンテナイメージの名前

② 動作確認

サーバーのファイアウォールで8080ポートを開放します。

sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload

これで、Webブラウザから http://[あなたのサーバーのIPアドレス]:8080 にアクセスしてみてください。Nginxのウェルカムページが表示されれば成功です!


4. まとめと次のステップ

今回は、Dockerを導入し、hello-worldnginxという2つのコンテナを動かしてみました。コンテナが、ホストOSに影響を与えることなく独立して動作していることを実感できたのではないでしょうか。

次回は、複数のコンテナを効率的に管理するためのツール**docker-compose**の使い方を解説します。今回のNginxコンテナに加えて、別のコンテナを連携させて動作させる方法を学び、より実践的なシステム構築に一歩踏み出しましょう。お楽しみに!


👤 プロフィール

セントラルソフト株式会社
DXビジネス事業本部 所属
花木 光司

  • 🚴 サイクリング好き
  • 🪡 レザークラフト初心者
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?