AlmaLinux9 Dockerのインストールと設定

記事広告

AlmaLinux9にdockerをインストールします。

dockerとはLinuxOS上に仮想のコンテナを作成し、その中で他と干渉しないライブラリやミドルウェをインストールして動かすことが可能になります。以下のサイトが非常に詳しくわかりやすかったです。

https://zenn.dev/koduki/articles/b4cb0551523919

以下のコマンドでdockerリポジトリを追加します。

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

docker本体をインストールします。

# dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
<省略>
# docker --version
Docker version 28.5.0, build 887030f

dockerバージョンが28.5.0がインストールできましたのでdockerを有効にして起動します。

# systemctl enable docker
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /usr/lib/systemd/system/docker.service.

# systemctl start docker

# systemctl status docker
● docker.service - Docker Application Container Engine
     Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: disabled)
     Active: active (running) since Tue 2025-10-07 11:24:27 JST; 8s ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 2220 (dockerd)
      Tasks: 19
     Memory: 33.1M
        CPU: 115ms
     CGroup: /system.slice/docker.service
             mq2220 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock


■Ubuntuのインストール

dockerコンテナについてはDocker HUB(レジストリ)からあらかじめ作成されたコンテナをpullしてくることが可能です。配布元サイトは以下となります。

https://hub.docker.com/

サイト見ればわかりますが非常に多数のイメージがアップロードされています。これをコマンドから以下のように検索することも可能です。

# docker search ubuntu
NAME                             DESCRIPTION                                     STARS     OFFICIAL
ubuntu                           Ubuntu is a Debian-based Linux operating sys…   17700     [OK]
ubuntu/squid                     Squid is a caching proxy for the Web. Long-t…   119
ubuntu/nginx                     Nginx, a high-performance reverse proxy & we…   133
ubuntu/cortex                    Cortex provides storage for Prometheus. Long…   4
ubuntu/kafka                     Apache Kafka, a distributed event streaming …   55
ubuntu/apache2                   Apache, a secure & extensible open-source HT…   97
ubuntu/prometheus                Prometheus is a systems and service monitori…   75
ubuntu/bind9                     BIND 9 is a very flexible, full-featured DNS…   114
ubuntu/zookeeper                 ZooKeeper maintains configuration informatio…   13
ubuntu/jre                       Distroless Java runtime based on Ubuntu. Lon…   21
ubuntu/postgres                  PostgreSQL is an open source object-relation…   41
ubuntu/mysql                     MySQL open source fast, stable, multi-thread…   70
ubuntu/dotnet-aspnet             Chiselled Ubuntu runtime image for ASP.NET a…   25
ubuntu/redis                     Redis, an open source key-value store. Long-…   23
ubuntu/python                    A chiselled Ubuntu rock with the Python runt…   27
ubuntu/dotnet-deps               Chiselled Ubuntu for self-contained .NET & A…   15
ubuntu/grafana                   Grafana, a feature rich metrics dashboard & …   12
ubuntu/dotnet-runtime            Chiselled Ubuntu runtime image for .NET apps…   21
ubuntu/memcached                 Memcached, in-memory keyvalue store for smal…   5
ubuntu/prometheus-alertmanager   Alertmanager handles client alerts from Prom…   10
ubuntu/cassandra                 Cassandra, an open source NoSQL distributed …   2
ubuntu/mlflow                    MLFlow: for managing the machine learning li…   6
ubuntu/telegraf                  Telegraf collects, processes, aggregates & w…   4
ubuntu/chiselled-jre             [MOVED TO ubuntu/jre] Chiselled JRE: distrol…   3
ubuntu/grafana-agent             Ubuntu ROCK for Grafana Agent, an open-sourc…   0

ホストOSはAlmaLinuxなので系統が異なるubuntuを入れてみることにします。まず以下のコマンドでubuntuイメージをダウンロードします。

# docker pull ubuntu
# docker images
REPOSITORY   TAG       IMAGE ID       CREATED      SIZE
ubuntu       latest    ce8f79aecc43   6 days ago   78.1MB

リポジトリーにubuntuが登録されましたのでこれを実行してみます。docker runコマンドでコンテナを起動しますが、オプションは下記の通りです。

オプション 意味
-it 対話モードで起動
-d バックグラウンドで実行
–privileged システムデバイスにアクセス可能
–name ubuntu-container コンテナ名を指定
ubuntu 使用するイメージを指定

# docker run -it -d --privileged --name ubuntu-container ubuntu
# docker ps -a
CONTAINER ID   IMAGE     COMMAND              CREATED          STATUS                PORTS               NAMES
9857d8846152   ubuntu    "/bin/bash"          13 seconds ago   Up 13 seconds                             ubuntu-container

次のコマンドでubuntuのコンソールにアクセスが可能です。

# docker exec -it ubuntu-container /bin/bash
root@ae0d966f4bf9:/#

コンテナを停止、開始するときには以下のコマンドを実行します。

# docker stop ubuntu-container
# docker start ubuntu-container

コンテナが不要になって削除する場合は下記のコマンドです。

# docker rm ubuntu-container  [コンテナ削除]
# docker rmi ubuntu-container  [イメージ削除]

※コンテナを停止してもデータは消えません。削除すると中のデータも消えます。


■httpdのインストール

次に簡易的なWebサーバコンテナをインストールしてみます。

# docker pull httpd
# docker images
REPOSITORY   TAG       IMAGE ID       CREATED      SIZE
httpd        latest    2416cb32cb59   8 weeks ago   117MB

これは対話モードではなくデーモンモードで起動し、ポート番号も合わせて指定します。少しややこしいですが、ポート8888の中で80を動かすことになり、外部の端末から見るとポート8888にアクセスすればWebサーバが表示されることになります。

# docker run -d -p 8888:80 --name httpd-container httpd
# docker ps -a
CONTAINER ID   IMAGE     COMMAND              CREATED          STATUS                     PORTS                                     NAMES
cb448b879757   httpd     "httpd-foreground"   11 seconds ago   Up 10 seconds              0.0.0.0:8888->80/tcp, [::]:8888->80/tcp   httpd-container

シェアする

  • このエントリーをはてなブックマークに追加

フォローする