Docker
みんな大好き Docker を入れていきます。
Docker Engine インストール
古い競合するパッケージをアンインストール
と、公式のドキュメントに書いてある。
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
一応やったけど、私の環境では、必要なかったです。
Docker GPG key を登録
curl
入れてなかったら事前にインストールしておくこと。
sudo apt update sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc
リポジトリを設定
echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt update
最新バージョンをインストールする
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
これで Docker がインストールできました。
docker グループを作成して、ユーザーを所属させる
いちいち sudo
で起動していられないので docker
グループを作って所属する。
sudo gpasswd -a ユーザー名 docker newgrp - docker
バージョン確認
docker -v
2024/02/22 時点で、Docker のバージョンは 25.0.3。
ついでに docker-compose
。
docker compose version
Docker compose のバージョンは 2.24.5 でした。
Rootless モード
個人で Docker を使うのに Rootless 環境を作る必要はあまりないかなと思っていますが、sudo 権限を持たないユーザーを docker グループ
に加えるのは危険なので、ちょっと安全に Docker を使おうよというお話。
uidmap をインストールして、Docker デーモンの停止
前提条件として newuidmap
と newgidmap
が必要なので、パッケージ uidmap
をインストール。
現在、system 全体で Docker デーモンが動いている状態なので停止します。
dbus-user-session
が入っていなかったらインストールしてシステムを再起動しておきます。
(インストール済でしたのでスキップします)
sudo apt install uidmap sudo systemctl disable --now docker.service docker.socket
Rootless ユーザー(を作成して)Docker インストール
sudo グループに入っていないユーザーでログイン。(ないので最初に作る)
tombo さんが仲間に入りました。
tombo でログインして、
systemd
のユーザーインスタンスを自動起動。
sudo adduser tombo sudo login tombo loginctl enable-linger tombo
23.10 では、
id
で UID を確認(1001 でした)して、
環境変数 $XDG_RUNTIME_DIR を設定。
22.04 ではしなくて良い。
id echo export XDG_RUNTIME_DIR=/run/user/1001 >> ~/.bashrc exec $SHELL -l
Rootless Docker 本体インストール
そのまま tombo で作業しています。
curl -fsSL https://get.docker.com/rootless | sh
インストールの最後辺りに表示された環境変数を ~/.bashrc
に追加。
echo export PATH=/home/tombo/bin:$PATH >> ~/.bashrc echo export DOCKER_HOST=unix:///run/user/1001/docker.sock >> ~/.bashrc exec $SHELL -l
バージョンを確認
docker -v docker compose version
2024/02/22 時点で、Rootless Docker のバージョンは 25.0.2 でした。
Rootfull とはバージョン違ったりもするのね。
Hello World
sudo 権限のない tombo さんが、docker run hello-world
する。
docker run hello-world
Hello from Docker!
が表示されれば良い。