0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

LinuxサーバーにDockerを入れようとしたら詰まった話【Bobで解決】

0
Last updated at Posted at 2026-08-03

Blog banner with simple Bob intro (header) - Computer - Blue.png

本記事は「サーバーの環境構築で詰まったら、BobというAIに聞いてみよう」シリーズのシナリオ2です。


Dockerのセットアップ、意外と落とし穴が多い

「コンテナ使おう!」と意気込んでLinuxサーバーにDockerを入れようとしたら……

E: Package 'docker-ce' has no installation candidate
permission denied while trying to connect to the Docker daemon socket
Cannot connect to the Docker daemon at unix:///var/run/docker.sock

「ドキュメント通りにやったのになぜ!?」ってなることが多いんですよね。OSのバージョン、リポジトリの設定、ユーザー権限……細かいところで引っかかりやすいのがDockerセットアップの難しいところです。


今回のシナリオ:RHEL 8 への Docker インストール

RHEL 8 のサーバーに Docker をインストールしようとして引っかかったケースを取り上げます。

まず公式ドキュメント通りに進めてみます:

$ sudo yum install docker-ce docker-ce-cli containerd.io

すると……

Error:
 Problem: package docker-ce-3:24.0.x requires containerd.io >= 1.6.4,
  but none of the providers can be installed
  - conflicting requests
  - nothing provides libseccomp >= 2.5 needed by containerd.io-1.6.x

依存関係のエラーです。「libseccomp のバージョンが足りない?」と思って調べてみても、RHEL 8 特有の問題なのかどうかよく分からない……という状況です。


Bobに聞いてみる

状況をそのまま Bob に投げましょう。

質問例

RHEL 8 のサーバーに Docker CE をインストールしようとしています。
以下のコマンドを実行したところエラーになりました。

$ sudo yum install docker-ce docker-ce-cli containerd.io

エラー内容:
Error: Problem: package docker-ce-3:24.0.x requires containerd.io >= 1.6.4,
but none of the providers can be installed
- conflicting requests
- nothing provides libseccomp >= 2.5 needed by containerd.io

RHEL 8 でDockerをインストールする正しい手順を教えてください。

Bobの回答例

RHEL 8 では Docker CE の公式リポジトリを使う前に、いくつかの前提設定が必要です。

原因: RHEL 8 のデフォルトリポジトリには docker-ce が含まれず、また podman と競合することがあります。

手順1: podman と buildah を先に削除(競合回避)

sudo dnf remove -y podman buildah

手順2: Docker の公式リポジトリを追加

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

手順3: Docker CE をインストール

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

手順4: Docker サービスを起動・自動起動設定

sudo systemctl start docker
sudo systemctl enable docker

手順5: 動作確認

sudo docker run hello-world

インストールはできたが次の壁:permission denied

手順通り進めたら Docker 自体はインストールできました。ところが……

$ docker ps
permission denied while trying to connect to the Docker daemon socket
at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json":
dial unix /var/run/docker.sock: connect: permission denied

sudo をつければ動くけど、毎回 sudo は面倒……。これも Bob に聞きましょう。

追加質問例

Docker のインストールは完了しましたが、sudo なしで docker コマンドを実行すると
「permission denied while trying to connect to the Docker daemon socket」
というエラーになります。
一般ユーザーで docker を使えるようにする方法を教えてください。
ユーザー名は "appuser" です。

Bobの回答例(権限設定)

docker グループにユーザーを追加することで sudo なしで実行できるようになります。

# docker グループにユーザーを追加
sudo usermod -aG docker appuser

# 設定を反映させるためにログアウト・ログインし直す
# または以下のコマンドでセッションを更新
newgrp docker

# 確認
docker ps

⚠️ セキュリティ注意: docker グループへの追加は実質的に root 権限と同等です。本番環境では信頼できるユーザーのみに付与してください。


さらに詰まるパターン:SELinux との戦い

RHEL 環境特有の問題として、SELinux が Docker の動作を阻害することがあります。

$ docker run -v /data:/data myimage
docker: Error response from daemon:
OCI runtime create failed: container_linux.go:380:
starting container process caused "process_linux.go:545:
container init caused \"rootfs_linux.go:76:
mounting \\\"/data\\\" to rootfs at \\\"/data\\\" caused \\\"mount through procfd:
permission denied\\\"\"": unknown.

Bobへの質問例

RHEL 8 + Docker でコンテナ起動時にボリュームマウントがエラーになります。
エラー内容はこちらです:(エラー貼り付け)
SELinux が原因でしょうか?

Bobの回答例(SELinux対応)

SELinux が原因の可能性が高いです。ボリュームマウントには :z または :Z オプションを付けることで解決できます。

# :z → 共有ラベルを設定(複数コンテナで共有する場合)
docker run -v /data:/data:z myimage

# :Z → プライベートラベルを設定(単一コンテナ専用の場合)
docker run -v /data:/data:Z myimage

根本的な対処として SELinux コンテキストを設定する方法もあります:

sudo chcon -Rt svirt_sandbox_file_t /data

⚠️ SELinux を permissivedisabled にするのは、セキュリティ上の問題があるため本番環境では推奨しません。


Bobを使うポイントまとめ

ポイント 内容
ディストリビューションとバージョンを明記 RHEL/CentOS/Ubuntu など、同じLinuxでも手順が違う場合がある
エラー全文を貼る 省略せずに貼るほど原因を絞り込みやすくなる
「なぜこの手順が必要か」も聞く 手順の理由を理解すると次回以降に応用できる
SELinux・firewalld との組み合わせも相談できる RHEL 特有の問題もBobは把握している

Bob を試してみたい方へ

🔗 IBM Bob 無料お試し版(30日間・40Bobcoin)

🔗 IBM Bob 公式ページ(プラン・料金)


シリーズ記事一覧

  • シナリオ1: Windowsサーバーにミドルウェアを入れようとしたら失敗した
  • シナリオ2(本記事): LinuxサーバーにDockerを入れようとしたら詰まった
  • シナリオ3: 古いOS(Windows Server 2016など)で環境構築したい ⭐
  • シナリオ4: データベース(PostgreSQL/MySQL)のインストールが失敗した
  • シリーズ入口: Bob の紹介と OS 対応比較表
0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?