Docker Compose
UCIDM は Docker Compose を使って複数のアプリケーションやミドルウェアを管理します。そのため、UCIDM をインストールするには Docker と Docker Compose もインストールする必要があります。またセキュリティ強化の観点から rootless コンテナの導入を推奨します。
Docker 社のドキュメントをベースにインストールの手順を説明します。
Docker 社のパッケージはバージョンによって変わる可能性があります。適切なパッケージがみつからない場合は Docker 社のドキュメントを参考にしてください。
初回インストールするとき
Docker 社が提供するリポジトリ設定を取得します。
$ sudo dnf install -y yum-utils
$ sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
Docker 関連のモジュールをインストールします。
$ sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin fuse-overlayfs iptables
docker グループを作成して非特権ユーザー (ucidm
) に設定します。
$ sudo groupadd docker
$ sudo usermod -aG docker ucidm
ucidm ユーザーでログインします。
$ whoami
ucidm
$ groups
docker ucidm
subuid と subgid に ucidm
ユーザー/グループが存在することを確認します。
$ grep ^$(whoami): /etc/subuid
ucidm:100000:65536
$ grep ^$(whoami): /etc/subgid
ucidm:100000:65536
dockerd-rootless-setuptool.sh という setup スクリプトが用意されているので実行します。
$ dockerd-rootless-setuptool.sh install
[ERROR] Missing system requirements. Run the following commands to
[ERROR] install the requirements and run this tool again.
[ERROR] Alternatively iptables checks can be disabled with --skip-iptables .
########## BEGIN ##########
sudo sh -eux <<EOF
# Load ip_tables module
modprobe ip_tables
EOF
########## END ##########
もし iptables のモジュールに関してこのようなエラーが発生したら指示の通り、次のように実行します。
$ sudo sh -eux <<EOF
> # Load ip_tables module
> modprobe ip_tables
> EOF
modprobe コマンドの実行後、再度 setup スクリプトを実行します。
$ dockerd-rootless-setuptool.sh install
DOCKER_HOST の環境変数が表示されているはずです。この設定を .bashrc の最後に追加します。
$ vi ~/.bashrc
...
export DOCKER_HOST=unix:///run/user/1000/docker.sock
systemd をユーザー権限で実行して docker サービスが起動していることを確認します。
$ systemctl --user status docker
...
Active: active (running) since Tue 2023-10-03 19:02:33 JST; 4min 35s ago
...
docker コマンドで hello-world コンテナを実行できれば成功です。
$ docker run hello-world
...
Hello from Docker!
This message shows that your installation appears to be working correctly.
...
OS の再起動時に docker サービスが起動する設定になっていることを確認します。
$ systemctl --user is-enabled docker
enabled
OS の再起動時に systemd のユーザーインスタンスが起動するように linger を有効にします。
$ sudo loginctl enable-linger ucidm
$ loginctl show-user ucidm
UID=1000
GID=1000
Name=ucidm
Timestamp=Fri 2023-09-29 02:51:20 EDT
TimestampMonotonic=2118735295
RuntimePath=/run/user/1000
Service=user@1000.service
Slice=user-1000.slice
Display=9
State=active
Sessions=9
IdleHint=no
IdleSinceHint=0
IdleSinceHintMonotonic=0
Linger=yes
アップグレードするとき
通常の dnf コマンドのアップグレードを実行してください。
$ sudo dnf upgrade -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin