いつも忘れるRHEL7+Docker+nvidia+vulkanの初期設定
RHEL7インストールとかその後docker入れてnvidiaを使うとか、の覚書。
最初に言っておきますが、RHEL7版Docker (docker-ceじゃないほう)だとnvidia-dockerがうまく動いてくれないです。。動かす方法があればだれかおしえて~
#どうせdeprecatedになるんだから要らんという話もありますが。。
RHEL7インストール(GUIなし)後
# subscription-manager register
登録中: subscription.rhsm.redhat.com:443/subscription
ユーザー名: xxxxx
パスワード: xxxxxx
このシステムは、次の ID で登録されました: xxxxxxxxxxxxx
登録したシステム名: xxxxxx
# subscription-manager subscribe --auto
インストール済み製品の現在の状態:
製品名: Red Hat Enterprise Linux Server
状態: サブスクライブ済み
# subscription-manager respo --list でリストが出ればOK.
GUIありのときCAPS->CTRL
$ gsettings set org.gnome.desktop.input-sources xkb-options "['ctrl:nocaps']"
emacs派なので。。
Docker(無印RHEL版。古い。)
RHEL7には、いわゆる無償版のdocker-ceではなくRHEL7用にforkしたdockerをつかうことができる。-ceはライセンスがやだ、って人達用。
今日からできるDocker on RHEL7 | Docker on Red Hat Enterprise Linux 7
ここら辺。
# subscription-manager repos --enable=rhel-7-server-extras-rpms
# yum install docker -y
# systemctl start docker.service
でサービスを実行して、
# docker info
とか
# docker run centos:7 echo hello
とかで動作を確認。
Docker-CE
RHEL7のリポジトリにも入ってるみたいだけど、無印版と同じバージョンっぽくてめっちゃ古いらしい(確認してまへん)。
ので、本家
Install Docker Engine on CentOS | Docker Documentation から。
# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum-utilsに含まれる yum-config-manager を使って repo ファイルをインストール。
からの、、
確認方法は無印と同じ。
# systemctl start docker.service
でサービスを実行して、
# docker info
とか
# docker run centos:7 echo hello
とかで動作を確認。
nouveauドライバの停止とnvidiaドライバインストール
RHEL 7 で Nouveau ドライバーを無効にして Nvidia ドライバーをインストールする - Red Hat Customer Portal
要点は以下。
/etc/default/grubを編集
GRUB_CMDLINE_LINUX=" ...中略... rd.driver.blacklist=nouveau nouveau.modeset=0"
コマンド実行
(BIOSの場合)
# grub2-mkconfig -o /boot/grub2/grub.cfg
(UEFIの場合)
で再起動
NVIDIAドライバインストール
# sh NVIDIA-xxxxx.run
Nouveauドライバ削除 (これはやらなくてもいいかも?)
1. initramfs更新
# mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-nouveau.img
2. ドライバ削除
Vulkanライブラリ
# subscription-manager repos --enable rhel-7-server-extras-rpms
# subscription-manager repos --enable rhel-7-server-optional-rpms
# yum install vulkan
※ extrasリポジトリはいらないかも?
Chromeインストールしようとしたらlibvulkanがないよって怒られたので。。
CentOSだとbaseリポジトリに入ってるのでyumだけでいける(というかchrome入れるときに依存関係で勝手に入るはず)
CUDA Toolkit
CUDA Toolkit 10.2 Download | NVIDIA Developer
ここら辺とか。wgetでパッケージとってきてスクリプト実行するだけ。
nvidia-docker
nvidia-docker/README.md at master · NVIDIA/nvidia-docker · GitHub
ここら辺。
$ distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
$ curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | sudo tee /etc/yum.repos.d/nvidia-docker.repo
RHELの無印Dockerだと、nvidia-container-toolkitを入れた時点でコンテナが起動できなくなります。。。
Docker-CEだと動く。
# docker run --rm --gpus all nvidia/cuda:10.0-base nvidia-smi
とか。
git2
RHEL7のgitは1.8なので古い。
VSCodeリモートとかでver2を要求される場合がある。
IUSリポジトリからインストールする。
# rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# yum install https://repo.ius.io/ius-release-el7.rpm
# yum remove git git-\*
# yum install git224
1行目:EPEL-RELEASEをインストール
2行目:IUSをインストール
3行目:古いgitを削除
4行目:IUSからgit-2.2.4をインストール
IUSのURLやパッケージ名は変わっている場合があるので注意。