こんにちは!花木です。「理想のシステム運用」を目指す私たちの旅、いよいよ第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 run
やdocker 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-world
とnginx
という2つのコンテナを動かしてみました。コンテナが、ホストOSに影響を与えることなく独立して動作していることを実感できたのではないでしょうか。
次回は、複数のコンテナを効率的に管理するためのツール**docker-compose
**の使い方を解説します。今回のNginxコンテナに加えて、別のコンテナを連携させて動作させる方法を学び、より実践的なシステム構築に一歩踏み出しましょう。お楽しみに!
👤 プロフィール
![]() |
セントラルソフト株式会社
|