新型コロナの影響で社内でもテレワークが進んでいる。
聞きたいことが発生したら近くの席に行き、口頭で話することがテレワークではできなくなり、電話またはメールでのやりとりになった。
メールでのやりとりでは履歴が追いにくく、複数人参加するにはかなり不向きとなる。
会議とかするならTeamsやZoomなどWEB会議すればいいのだが相手がどのような状況なのか見えないためいきなりWEB会議に招待するのにも気が引ける。
そのため、チャット環境を構築しようと考案したが、社内セキュリティ上クラウド環境でのチャットは使えない。
そこで、オンプレ環境でチャットができるRocket.Chatを入れることにした。
・・・というのがたてまえ。
CentOS7とCentOS8でdockerのインストールからRocket.Chatの初期設定まで記載していこうと思います。
サーバ情報
CentOS7:CentOS Linux release 7.7.1908 (Core)
SELinux:Enforcing(有効)
CentOS8:CentOS Linux release 8.1.1911 (Core)
SELinux:Enforcing(有効)
どちらも最小構成インストールです。
Dockerインストール
CentOS7とCentOS8でやり方が少し変わります
CentOS7
yum-utilsインストール
コマンドでリポジトリ追加できるよう、yum-utilsをインストールします。
$ sudo yum install yum-utils
読み込んだプラグイン:fastestmirror
Determining fastest mirrors
* base: mirrors.cat.net
* extras: mirrors.cat.net
* updates: mirrors.cat.net
base | 3.6 kB 00:00
extras | 2.9 kB 00:00
updates | 2.9 kB 00:00
(1/4): base/7/x86_64/group_gz | 165 kB 00:00
(2/4): extras/7/x86_64/primary_db | 165 kB 00:00
(3/4): base/7/x86_64/primary_db | 6.0 MB 00:01
(4/4): updates/7/x86_64/primary_db | 7.6 MB 00:02
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ yum-utils.noarch 0:1.1.31-52.el7 を インストール
--> 依存性の処理をしています: python-kitchen のパッケージ: yum-utils-1.1.31-52.el7.noarch
--> 依存性の処理をしています: libxml2-python のパッケージ: yum-utils-1.1.31-52.el7.noarch
--> トランザクションの確認を実行しています。
---> パッケージ libxml2-python.x86_64 0:2.9.1-6.el7_2.3 を インストール
---> パッケージ python-kitchen.noarch 0:1.1.1-5.el7 を インストール
--> 依存性の処理をしています: python-chardet のパッケージ: python-kitchen-1.1.1-5.el7.noarch
--> トランザクションの確認を実行しています。
---> パッケージ python-chardet.noarch 0:2.2.1-3.el7 を インストール
--> 依存性解決を終了しました。
依存性を解決しました
================================================================================
Package アーキテクチャー
バージョン リポジトリー
容量
================================================================================
インストール中:
yum-utils noarch 1.1.31-52.el7 base 121 k
依存性関連でのインストールをします:
libxml2-python x86_64 2.9.1-6.el7_2.3 base 247 k
python-chardet noarch 2.2.1-3.el7 base 227 k
python-kitchen noarch 1.1.1-5.el7 base 267 k
トランザクションの要約
================================================================================
インストール 1 パッケージ (+3 個の依存関係のパッケージ)
総ダウンロード容量: 862 k
インストール容量: 4.3 M
Is this ok [y/d/N]: y
Downloading packages:
警告: /var/cache/yum/x86_64/7/base/packages/libxml2-python-2.9.1-6.el7_2.3.x86_64.rpm: ヘッダー V3 RSA/SHA256 Signature、鍵 ID f4a80eb5: NOKEY
libxml2-python-2.9.1-6.el7_2.3.x86_64.rpm の公開鍵がインストールされていません
(1/4): libxml2-python-2.9.1-6.el7_2.3.x86_64.rpm | 247 kB 00:00
(2/4): python-kitchen-1.1.1-5.el7.noarch.rpm | 267 kB 00:00
(3/4): yum-utils-1.1.31-52.el7.noarch.rpm | 121 kB 00:00
(4/4): python-chardet-2.2.1-3.el7.noarch.rpm | 227 kB 00:00
--------------------------------------------------------------------------------
合計 901 kB/s | 862 kB 00:00
file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 から鍵を取得中です。
Importing GPG key 0xF4A80EB5:
Userid : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"
Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
Package : centos-release-7-7.1908.0.el7.centos.x86_64 (@anaconda)
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
上記の処理を行います。よろしいでしょうか? [y/N]y
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
インストール中 : python-chardet-2.2.1-3.el7.noarch 1/4
インストール中 : python-kitchen-1.1.1-5.el7.noarch 2/4
インストール中 : libxml2-python-2.9.1-6.el7_2.3.x86_64 3/4
インストール中 : yum-utils-1.1.31-52.el7.noarch 4/4
検証中 : python-kitchen-1.1.1-5.el7.noarch 1/4
検証中 : yum-utils-1.1.31-52.el7.noarch 2/4
検証中 : libxml2-python-2.9.1-6.el7_2.3.x86_64 3/4
検証中 : python-chardet-2.2.1-3.el7.noarch 4/4
インストール:
yum-utils.noarch 0:1.1.31-52.el7
依存性関連をインストールしました:
libxml2-python.x86_64 0:2.9.1-6.el7_2.3 python-chardet.noarch 0:2.2.1-3.el7
python-kitchen.noarch 0:1.1.1-5.el7
完了しました!
Dockerリポジトリをyumに登録
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
読み込んだプラグイン:fastestmirror
adding repo from: https://download.docker.com/linux/centos/docker-ce.repo
grabbing file https://download.docker.com/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
repo saved to /etc/yum.repos.d/docker-ce.repo
Dockerインストール
$ sudo yum install docker-ce
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.cat.net
* extras: mirrors.cat.net
* updates: mirrors.cat.net
docker-ce-stable | 3.5 kB 00:00
(1/2): docker-ce-stable/x86_64/updateinfo | 55 B 00:00
(2/2): docker-ce-stable/x86_64/primary_db | 41 kB 00:00
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ docker-ce.x86_64 3:19.03.8-3.el7 を インストール
--> 依存性の処理をしています: container-selinux >= 2:2.74 のパッケージ: 3:docker-ce-19.03.8-3.el7.x86_64
--> 依存性の処理をしています: containerd.io >= 1.2.2-3 のパッケージ: 3:docker-ce-19.03.8-3.el7.x86_64
--> 依存性の処理をしています: docker-ce-cli のパッケージ: 3:docker-ce-19.03.8-3.el7.x86_64
--> 依存性の処理をしています: libcgroup のパッケージ: 3:docker-ce-19.03.8-3.el7.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ container-selinux.noarch 2:2.107-3.el7 を インストール
--> 依存性の処理をしています: policycoreutils-python のパッケージ: 2:container-selinux-2.107-3.el7.noarch
---> パッケージ containerd.io.x86_64 0:1.2.13-3.1.el7 を インストール
---> パッケージ docker-ce-cli.x86_64 1:19.03.8-3.el7 を インストール
---> パッケージ libcgroup.x86_64 0:0.41-21.el7 を インストール
--> トランザクションの確認を実行しています。
---> パッケージ policycoreutils-python.x86_64 0:2.5-33.el7 を インストール
--> 依存性の処理をしています: setools-libs >= 3.3.8-4 のパッケージ: policycoreutils-python-2.5-33.el7.x86_64
--> 依存性の処理をしています: libsemanage-python >= 2.5-14 のパッケージ: policycoreutils-python-2.5-33.el7.x86_64
--> 依存性の処理をしています: audit-libs-python >= 2.1.3-4 のパッケージ: policycoreutils-python-2.5-33.el7.x86_64
--> 依存性の処理をしています: python-IPy のパッケージ: policycoreutils-python-2.5-33.el7.x86_64
--> 依存性の処理をしています: libqpol.so.1(VERS_1.4)(64bit) のパッケージ: policycoreutils-python-2.5-33.el7.x86_64
--> 依存性の処理をしています: libqpol.so.1(VERS_1.2)(64bit) のパッケージ: policycoreutils-python-2.5-33.el7.x86_64
--> 依存性の処理をしています: libapol.so.4(VERS_4.0)(64bit) のパッケージ: policycoreutils-python-2.5-33.el7.x86_64
--> 依存性の処理をしています: checkpolicy のパッケージ: policycoreutils-python-2.5-33.el7.x86_64
--> 依存性の処理をしています: libqpol.so.1()(64bit) のパッケージ: policycoreutils-python-2.5-33.el7.x86_64
--> 依存性の処理をしています: libapol.so.4()(64bit) のパッケージ: policycoreutils-python-2.5-33.el7.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ audit-libs-python.x86_64 0:2.8.5-4.el7 を インストール
---> パッケージ checkpolicy.x86_64 0:2.5-8.el7 を インストール
---> パッケージ libsemanage-python.x86_64 0:2.5-14.el7 を インストール
---> パッケージ python-IPy.noarch 0:0.75-6.el7 を インストール
---> パッケージ setools-libs.x86_64 0:3.3.8-4.el7 を インストール
--> 依存性解決を終了しました。
依存性を解決しました
================================================================================
Package アーキテクチャー
バージョン リポジトリー 容量
================================================================================
インストール中:
docker-ce x86_64 3:19.03.8-3.el7 docker-ce-stable 25 M
依存性関連でのインストールをします:
audit-libs-python x86_64 2.8.5-4.el7 base 76 k
checkpolicy x86_64 2.5-8.el7 base 295 k
container-selinux noarch 2:2.107-3.el7 extras 39 k
containerd.io x86_64 1.2.13-3.1.el7 docker-ce-stable 23 M
docker-ce-cli x86_64 1:19.03.8-3.el7 docker-ce-stable 40 M
libcgroup x86_64 0.41-21.el7 base 66 k
libsemanage-python x86_64 2.5-14.el7 base 113 k
policycoreutils-python x86_64 2.5-33.el7 base 457 k
python-IPy noarch 0.75-6.el7 base 32 k
setools-libs x86_64 3.3.8-4.el7 base 620 k
トランザクションの要約
================================================================================
インストール 1 パッケージ (+10 個の依存関係のパッケージ)
総ダウンロード容量: 89 M
インストール容量: 369 M
Is this ok [y/d/N]: y
Downloading packages:
(1/11): audit-libs-python-2.8.5-4.el7.x86_64.rpm | 76 kB 00:00
(2/11): container-selinux-2.107-3.el7.noarch.rpm | 39 kB 00:00
(3/11): checkpolicy-2.5-8.el7.x86_64.rpm | 295 kB 00:01
warning: /var/cache/yum/x86_64/7/docker-ce-stable/packages/docker-ce-19.03.8-3.el7.x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID 621e9f35: NOKEY
docker-ce-19.03.8-3.el7.x86_64.rpm の公開鍵がインストールされていません
(4/11): docker-ce-19.03.8-3.el7.x86_64.rpm | 25 MB 00:01
(5/11): containerd.io-1.2.13-3.1.el7.x86_64.rpm | 23 MB 00:01
(6/11): libcgroup-0.41-21.el7.x86_64.rpm | 66 kB 00:00
(7/11): libsemanage-python-2.5-14.el7.x86_64.rpm | 113 kB 00:00
(8/11): policycoreutils-python-2.5-33.el7.x86_64.rpm | 457 kB 00:00
(9/11): python-IPy-0.75-6.el7.noarch.rpm | 32 kB 00:00
(10/11): docker-ce-cli-19.03.8-3.el7.x86_64.rpm | 40 MB 00:01
(11/11): setools-libs-3.3.8-4.el7.x86_64.rpm | 620 kB 00:01
--------------------------------------------------------------------------------
合計 26 MB/s | 89 MB 00:03
https://download.docker.com/linux/centos/gpg から鍵を取得中です。
Importing GPG key 0x621E9F35:
Userid : "Docker Release (CE rpm) <docker@docker.com>"
Fingerprint: 060a 61c5 1b55 8a7f 742b 77aa c52f eb6b 621e 9f35
From : https://download.docker.com/linux/centos/gpg
上記の処理を行います。よろしいでしょうか? [y/N]y
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
インストール中 : libcgroup-0.41-21.el7.x86_64 1/11
インストール中 : setools-libs-3.3.8-4.el7.x86_64 2/11
インストール中 : audit-libs-python-2.8.5-4.el7.x86_64 3/11
インストール中 : python-IPy-0.75-6.el7.noarch 4/11
インストール中 : 1:docker-ce-cli-19.03.8-3.el7.x86_64 5/11
インストール中 : libsemanage-python-2.5-14.el7.x86_64 6/11
インストール中 : checkpolicy-2.5-8.el7.x86_64 7/11
インストール中 : policycoreutils-python-2.5-33.el7.x86_64 8/11
インストール中 : 2:container-selinux-2.107-3.el7.noarch 9/11
インストール中 : containerd.io-1.2.13-3.1.el7.x86_64 10/11
インストール中 : 3:docker-ce-19.03.8-3.el7.x86_64 11/11
検証中 : checkpolicy-2.5-8.el7.x86_64 1/11
検証中 : policycoreutils-python-2.5-33.el7.x86_64 2/11
検証中 : libsemanage-python-2.5-14.el7.x86_64 3/11
検証中 : 2:container-selinux-2.107-3.el7.noarch 4/11
検証中 : 1:docker-ce-cli-19.03.8-3.el7.x86_64 5/11
検証中 : python-IPy-0.75-6.el7.noarch 6/11
検証中 : containerd.io-1.2.13-3.1.el7.x86_64 7/11
検証中 : 3:docker-ce-19.03.8-3.el7.x86_64 8/11
検証中 : audit-libs-python-2.8.5-4.el7.x86_64 9/11
検証中 : setools-libs-3.3.8-4.el7.x86_64 10/11
検証中 : libcgroup-0.41-21.el7.x86_64 11/11
インストール:
docker-ce.x86_64 3:19.03.8-3.el7
依存性関連をインストールしました:
audit-libs-python.x86_64 0:2.8.5-4.el7
checkpolicy.x86_64 0:2.5-8.el7
container-selinux.noarch 2:2.107-3.el7
containerd.io.x86_64 0:1.2.13-3.1.el7
docker-ce-cli.x86_64 1:19.03.8-3.el7
libcgroup.x86_64 0:0.41-21.el7
libsemanage-python.x86_64 0:2.5-14.el7
policycoreutils-python.x86_64 0:2.5-33.el7
python-IPy.noarch 0:0.75-6.el7
setools-libs.x86_64 0:3.3.8-4.el7
完了しました!
Docker起動、自動起動の有効化
$ sudo systemctl start docker
$ sudo systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
これでDockerのインストールは完了です。
CentOS8
podman削除
※CentOS8はpodmanが標準となり、dockerは非推奨のようです。
また、podmanとdockerは競合関係になるため、予めpodmanの削除が必要です。
$ sudo dnf remove podman
あなたはシステム管理者から通常の講習を受けたはずです。
これは通常、以下の3点に要約されます:
#1) 他人のプライバシーを尊重すること。
#2) タイプする前に考えること。
#3) 大いなる力には大いなる責任が伴うこと。
[sudo] **** のパスワード:
モジュラーの依存に関する問題:
問題 1: conflicting requests
- nothing provides module(perl:5.26) needed by module perl-DBD-SQLite:1.58:8010020191114033549:073fa5fe-0.x86_64
問題 2: conflicting requests
- nothing provides module(perl:5.26) needed by module perl-DBI:1.641:8010020191113222731:16b3ab4d-0.x86_64
依存関係が解決しました。
================================================================================
パッケージ Arch バージョン Repo サイズ
================================================================================
削除中:
podman x86_64 1.6.4-4.module_el8.1.0+298+41f9343a @AppStream 55 M
依存関係パッケージの削除:
cockpit-podman noarch 11-1.module_el8.1.0+298+41f9343a @AppStream 4.0 M
未使用の依存関係の削除:
conmon x86_64 2:2.0.6-1.module_el8.1.0+298+41f9343a @AppStream 85 k
libvarlink x86_64 18-3.el8 @anaconda 129 k
podman-manpages noarch 1.6.4-4.module_el8.1.0+298+41f9343a @AppStream 137 k
トランザクションの概要
================================================================================
削除 5 パッケージ
解放された容量: 59 M
これでよろしいですか? [y/N]: y
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
準備 : 1/1
scriptletの実行中: cockpit-podman-11-1.module_el8.1.0+298+41f9343a.noar 1/1
削除 : cockpit-podman-11-1.module_el8.1.0+298+41f9343a.noar 1/5
削除 : podman-1.6.4-4.module_el8.1.0+298+41f9343a.x86_64 2/5
scriptletの実行中: podman-1.6.4-4.module_el8.1.0+298+41f9343a.x86_64 2/5
削除 : podman-manpages-1.6.4-4.module_el8.1.0+298+41f9343a. 3/5
削除 : conmon-2:2.0.6-1.module_el8.1.0+298+41f9343a.x86_64 4/5
削除 : libvarlink-18-3.el8.x86_64 5/5
scriptletの実行中: libvarlink-18-3.el8.x86_64 5/5
検証 : cockpit-podman-11-1.module_el8.1.0+298+41f9343a.noar 1/5
検証 : conmon-2:2.0.6-1.module_el8.1.0+298+41f9343a.x86_64 2/5
検証 : libvarlink-18-3.el8.x86_64 3/5
検証 : podman-1.6.4-4.module_el8.1.0+298+41f9343a.x86_64 4/5
検証 : podman-manpages-1.6.4-4.module_el8.1.0+298+41f9343a. 5/5
削除しました:
podman-1.6.4-4.module_el8.1.0+298+41f9343a.x86_64
cockpit-podman-11-1.module_el8.1.0+298+41f9343a.noarch
conmon-2:2.0.6-1.module_el8.1.0+298+41f9343a.x86_64
libvarlink-18-3.el8.x86_64
podman-manpages-1.6.4-4.module_el8.1.0+298+41f9343a.noarch
完了しました!
dockerリポジトリをdnfに設定
yumと違い、dnfはデフォルトコマンドでリポジトリの追加ができます。
$ sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
Dockerインストール
dockerをインストールしたいのですが、containerd.ioが古いためそのままではインストールできません。
$ sudo dnf install docker-ce
メタデータの期限切れの最終確認: 0:00:06 時間前の 2020年04月19日 09時11分06秒 に 実施しました。
エラー:
問題: package docker-ce-3:19.03.8-3.el7.x86_64 requires containerd.io >= 1.2.2-3, but none of the providers can be installed
- cannot install the best candidate for the job
- package containerd.io-1.2.10-3.2.el7.x86_64 is excluded
- package containerd.io-1.2.13-3.1.el7.x86_64 is excluded
- package containerd.io-1.2.2-3.3.el7.x86_64 is excluded
- package containerd.io-1.2.2-3.el7.x86_64 is excluded
- package containerd.io-1.2.4-3.1.el7.x86_64 is excluded
- package containerd.io-1.2.5-3.1.el7.x86_64 is excluded
- package containerd.io-1.2.6-3.3.el7.x86_64 is excluded
(インストール不可のパッケージをスキップするには、'--skip-broken' を追加してみて ください または、'--nobest' を追加して、最適候補のパッケージのみを使用しないでください)
なので、--nobestを付与して、インストールできる直近のバージョンをインストールします。
$sudo dnf install docker-ce --nobest
メタデータの期限切れの最終確認: 0:02:43 時間前の 2020年04月19日 09時11分06秒 に 実施しました。
依存関係が解決しました。
問題: package docker-ce-3:19.03.8-3.el7.x86_64 requires containerd.io >= 1.2.2-3, but none of the providers can be installed
- cannot install the best candidate for the job
- package containerd.io-1.2.10-3.2.el7.x86_64 is excluded
- package containerd.io-1.2.13-3.1.el7.x86_64 is excluded
- package containerd.io-1.2.2-3.3.el7.x86_64 is excluded
- package containerd.io-1.2.2-3.el7.x86_64 is excluded
- package containerd.io-1.2.4-3.1.el7.x86_64 is excluded
- package containerd.io-1.2.5-3.1.el7.x86_64 is excluded
- package containerd.io-1.2.6-3.3.el7.x86_64 is excluded
================================================================================
パッケージ Arch バージョン リポジトリー サイズ
================================================================================
インストール:
docker-ce x86_64 3:18.09.1-3.el7 docker-ce-stable 19 M
依存関係のインストール:
libcgroup x86_64 0.41-19.el8 BaseOS 70 k
containerd.io x86_64 1.2.0-3.el7 docker-ce-stable 22 M
docker-ce-cli x86_64 1:19.03.8-3.el7 docker-ce-stable 40 M
壊れた dependencies のパッケージをスキップします:
docker-ce x86_64 3:19.03.8-3.el7 docker-ce-stable 25 M
トランザクションの概要
================================================================================
インストール 4 パッケージ
スキップ 1 パッケージ
ダウンロードサイズの合計: 80 M
インストール済みのサイズ: 339 M
これでよろしいですか? [y/N]:y
パッケージのダウンロード:
(1/4): libcgroup-0.41-19.el8.x86_64.rpm 475 kB/s | 70 kB 00:00
(2/4): containerd.io-1.2.0-3.el7.x86_64.rpm 12 MB/s | 22 MB 00:01
(3/4): docker-ce-18.09.1-3.el7.x86_64.rpm 9.6 MB/s | 19 MB 00:01
(4/4): docker-ce-cli-19.03.8-3.el7.x86_64.rpm 14 MB/s | 40 MB 00:02
--------------------------------------------------------------------------------
合計 21 MB/s | 80 MB 00:03
警告: /var/cache/dnf/docker-ce-stable-091d8a9c23201250/packages/containerd.io-1.2.0-3.el7.x86_64.rpm: ヘッダー V4 RSA/SHA512 Signature、鍵 ID 621e9f35: NOKEY
Docker CE Stable - x86_64 12 kB/s | 1.6 kB 00:00
GPG 鍵 0x621E9F35 をインポート中:
Userid : "Docker Release (CE rpm) <docker@docker.com>"
Fingerprint: 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35
From : https://download.docker.com/linux/centos/gpg
これでよろしいですか? [y/N]: y
鍵のインポートに成功しました
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
準備 : 1/1
インストール中 : docker-ce-cli-1:19.03.8-3.el7.x86_64 1/4
scriptletの実行中: docker-ce-cli-1:19.03.8-3.el7.x86_64 1/4
インストール中 : containerd.io-1.2.0-3.el7.x86_64 2/4
scriptletの実行中: containerd.io-1.2.0-3.el7.x86_64 2/4
scriptletの実行中: libcgroup-0.41-19.el8.x86_64 3/4
インストール中 : libcgroup-0.41-19.el8.x86_64 3/4
scriptletの実行中: libcgroup-0.41-19.el8.x86_64 3/4
scriptletの実行中: docker-ce-3:18.09.1-3.el7.x86_64 4/4
インストール中 : docker-ce-3:18.09.1-3.el7.x86_64 4/4
scriptletの実行中: docker-ce-3:18.09.1-3.el7.x86_64 4/4
検証 : libcgroup-0.41-19.el8.x86_64 1/4
検証 : containerd.io-1.2.0-3.el7.x86_64 2/4
検証 : docker-ce-3:18.09.1-3.el7.x86_64 3/4
検証 : docker-ce-cli-1:19.03.8-3.el7.x86_64 4/4
インストール済み:
docker-ce-3:18.09.1-3.el7.x86_64 libcgroup-0.41-19.el8.x86_64
containerd.io-1.2.0-3.el7.x86_64 docker-ce-cli-1:19.03.8-3.el7.x86_64
スキップしました:
docker-ce-3:19.03.8-3.el7.x86_64
完了しました!
※このままだとdnf updateのたびに--nobestをつけないといけなくなります。
めんどくさいのであればcontainerd.ioをアップデートしたほうがいいかもです。
Docker起動、自動起動の有効化
CentOS7と同じDockerの起動・自動起動設定を行います。
$ sudo systemctl start docker
$ sudo systemctl enable docker
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /usr/lib/systemd/system/docker.service.
【CentOS7・8共通】docker-composeインストール
Docker-Composeをインストールします。
※Docker-Compose 1.25.5をインストールしています。最新版はこちらより確認してください。
$ sudo curl -L https://github.com/docker/compose/releases/do
wnload/1.25.5/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-comp
ose
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 638 100 638 0 0 7250 0 --:--:-- --:--:-- --:--:-- 7250
100 16.7M 100 16.7M 0 0 4234k 0 0:00:04 0:00:04 --:--:-- 5375k
取得したDocker-Composeに実行権限を付与します。
$sudo chmod +x /usr/local/bin/docker-compose
【CentOS7・8共通】Dockerイメージ取得(Mongo、Rocket.Chat)
Mongo
$ sudo docker pull mongo:4.0
4.0: Pulling from library/mongo
fe703b657a32: Pull complete
f9df1fafd224: Pull complete
a645a4b887f9: Pull complete
57db7fe0b522: Pull complete
4f659f7c5a8a: Pull complete
b4b7ff548bb8: Pull complete
67a4fc8b9ac5: Pull complete
4a2afe62084c: Pull complete
665eda6efe5a: Pull complete
42f249afb878: Pull complete
da9817b98263: Pull complete
d52bfe96ec69: Pull complete
5f87759b290c: Pull complete
Digest: sha256:74a364c5a142b1887456289405b4428f6f0aa92c5955b4ff10e477ae2a7795b2
Status: Downloaded newer image for mongo:4.0
docker.io/library/mongo:4.0
Rocket.Chat
$ sudo docker pull rocketchat/rocket.chat
Using default tag: latest
latest: Pulling from rocketchat/rocket.chat
c0c53f743a40: Pull complete
743f3f406194: Pull complete
cdca34ec0fad: Pull complete
f88bc91ab251: Pull complete
f26cf0eaff11: Pull complete
9bd2eb381953: Pull complete
Digest: sha256:6808869e4751d95273d468da5efd1262a01f3686bf8d2e8a6603dc6eb995295b
Status: Downloaded newer image for rocketchat/rocket.chat:latest
docker.io/rocketchat/rocket.chat:latest
【CentOS7・8共通】Rocket.Chat 構築準備
Rocket.Chatを構築する準備を行います。
※Docker-Composeは/usr/local/binに入れており、PATH設定をしないとsudoでは実行できない(フルパス指定になる)。
そのため、root権限で実行する。(visudo設定すればいいだけですけどね)
$ sudo su -
フォルダ作成・Docker-Composeの取得
また、Rocket.Chat公式サイトよりDocker-Composeを取得する。
# mkdir -p /var/www/rocket.chat
# cd /var/www/rocket.chat
# curl -L https://raw.githubusercontent.com/RocketChat/Rocket.Chat/develop/docker-compose.yml -o docker-compose.yml
※docker-compose.ymlの中身は下記になっていました。(2020/04/19時点)
version: '2'
services:
rocketchat:
image: rocketchat/rocket.chat:latest
command: >
bash -c
"for i in `seq 1 30`; do
node main.js &&
s=$$? && break || s=$$?;
echo "Tried $$i times. Waiting 5 secs...";
sleep 5;
done; (exit $$s)"
restart: unless-stopped
volumes:
- ./uploads:/app/uploads
environment:
- PORT=3000
- ROOT_URL=http://localhost:3000
- MONGO_URL=mongodb://mongo:27017/rocketchat
- MONGO_OPLOG_URL=mongodb://mongo:27017/local
- MAIL_URL=smtp://smtp.email
# - HTTP_PROXY=http://proxy.domain.com
# - HTTPS_PROXY=http://proxy.domain.com
depends_on:
- mongo
ports:
- 3000:3000
labels:
- "traefik.backend=rocketchat"
- "traefik.frontend.rule=Host: your.domain.tld"
mongo:
image: mongo:4.0
restart: unless-stopped
volumes:
- ./data/db:/data/db
#- ./data/dump:/dump
command: mongod --smallfiles --oplogSize 128 --replSet rs0 --storageEngine=mmapv1
labels:
- "traefik.enable=false"
# this container's job is just run the command to initialize the replica set.
# it will run the command and remove himself (it will not stay running)
mongo-init-replica:
image: mongo:4.0
command: >
bash -c
"for i in `seq 1 30`; do
mongo mongo/rocketchat --eval "
rs.initiate({
_id: 'rs0',
members: [ { _id: 0, host: 'localhost:27017' } ]})" &&
s=$$? && break || s=$$?;
echo "Tried $$i times. Waiting 5 secs...";
sleep 5;
done; (exit $$s)"
depends_on:
- mongo
# hubot, the popular chatbot (add the bot user first and change the password before starting this image)
hubot:
image: rocketchat/hubot-rocketchat:latest
restart: unless-stopped
environment:
- ROCKETCHAT_URL=rocketchat:3000
- ROCKETCHAT_ROOM=GENERAL
- ROCKETCHAT_USER=bot
- ROCKETCHAT_PASSWORD=botpassword
- BOT_NAME=bot
# you can add more scripts as you'd like here, they need to be installable by npm
- EXTERNAL_SCRIPTS=hubot-help,hubot-seen,hubot-links,hubot-diagnostics
depends_on:
- rocketchat
labels:
- "traefik.enable=false"
volumes:
- ./scripts:/home/hubot/scripts
# this is used to expose the hubot port for notifications on the host on port 3001, e.g. for hubot-jenkins-notifier
ports:
- 3001:8080
#traefik:
# image: traefik:latest
# restart: unless-stopped
# command: >
# traefik
# --docker
# --acme=true
# --acme.domains='your.domain.tld'
# --acme.email='your@email.tld'
# --acme.entrypoint=https
# --acme.storagefile=acme.json
# --defaultentrypoints=http
# --defaultentrypoints=https
# --entryPoints='Name:http Address::80 Redirect.EntryPoint:https'
# --entryPoints='Name:https Address::443 TLS.Certificates:'
# ports:
# - 80:80
# - 443:443
# volumes:
# - /var/run/docker.sock:/var/run/docker.sock
Mongo、Rocket.Chatの起動
Mongoのリポジトリ取得・起動
# docker-compose up -d mongo
rocketchat_mongo_1 is ... done
# docker-compose up -d mongo-init-replica
rocketchat_mongo_1 is up-to-date
Creating rocketchat_mongo-init-replica_1 ... done
Rocket.Chatのリポジトリ取得・起動
# docker-compose up -d rocketchat
Creating network "rocketchat_default" with the default driver
Creating rocketchat_mongo_1 ... done
Creating rocketchat_rocketchat_1 ... done
起動確認
# docker-compose ps
Name Command State Ports
--------------------------------------------------------------------------------------------------
rocketchat_mongo-init-replica_1 docker-entrypoint.sh bash ... Exit 0
rocketchat_mongo_1 docker-entrypoint.sh mongo ... Up 27017/tcp
rocketchat_rocketchat_1 bash -c for i in `seq 1 30 ... Up 0.0.0.0:3000->3000/tcp
これでRocket.Chatのインストールは終了です。
Rocket.Chat 初期設定
http://【IPアドレス】:3000/にアクセスすると管理者情報の設定画面になります。
管理者情報の設定を行います。
ユーザ名は全角入力で次へボタンを押下するとユーザ名のTrueエラー(謎)が発生します。
その場合は画面のリロードして1から入力してください。
また、SMTPでメール送信設定を行っていないサーバの場合、「次へ」を押下すると、しばらく固まります。
その場合は再読み込みしたあとログインするか、メール送信が失敗するまでしばらく待ちます。
組織情報を入力します。(任意なのでそのままでも可)
サイト名とサーバの種類を設定します。
オンプレ環境のみで行う場合はサーバの種類を「プライベート」に設定します。
また、メール送信設定を行わない場合は「Auto opt in new users for Two Factor via Email」をいいえに設定します。
オンプレ環境(スタンドアローン)で構築する場合は「次を自分で実施し、スタンドアローン利用する」にチェックを選択します。
下記画面が表示されるとRocket.Chatの初期設定は終了です。
色々試してみたところうまくいってそう
最後に
CentOSを入れてから何も弄らずにDocker、Rocket.Chatを入れることができました。
特に、SELinuxが有効になったままサクサクっとインストールできたのが驚きでした。
(SELinux有効にすると嵌ると抜け出すのに一苦労するので・・・)