#author("2025-12-25T16:29:08+09:00","default:nobuoki","nobuoki") #author("2025-12-25T16:34:29+09:00","default:nobuoki","nobuoki") * podman api の常時起動 [#s576ce13] #prism(bash){{{ systemctl --user enable --now podman.socket loginctl enable-linger $USER }}} こうしておけば docker compose コマンドを podman api 経由で実行可能になる #prism(bash){{{ DOCKER_HOST=unix://$XDG_RUNTIME_DIR/podman/podman.sock docker compose up -d }}} * 80番以上のポートを非特権ユーザーに開放 [#q1662700] rootless podman/docker に優しい仕様 #prism(bash){{{ echo "net.ipv4.ip_unprivileged_port_start=80" | sudo tee /etc/sysctl.d/99-podman-ports.confsudo sysctl --system }}} net.ipv4.ip_unprivileged_port_start=0 にすると、全ポートを非特権ユーザーに開放できる SELinux やファイアウォールまで考慮するとこんな感じになる #prism(bash){{{ # カーネルに非特権ユーザーに全ポートを使わせる echo "net.ipv4.ip_unprivileged_port_start=0" | sudo tee /etc/sysctl.d/99-podman-ports.confsudo sysctl --system # SELinux にコンテナプロセスのネットワークポートバインドを緩和させる sudo setsebool -P container_connect_any 1 # 実際に使うポートが SELinux に定義済みかを確認 sudo semanage port -l # 未定義だった場合は SELinux に定義追加 sudo semanage port -a -t 適切なタイプ -p tcp ポート番号 # 外部から待ち受けする場合はファイアウォールの穴あけも実施する # firewalld の場合 sudo firewall-cmd --add-port=ポート番号/tcp --permanent sudo firewall-cmd --reload }}} * quay.ioを黙らせる [#x48a895e] 二度とこうやって聞いてこないよう、docker.io に決め打ちしたいのです #prism(bash){{{ $ podman run --rm redis:6.0 redis-server ? Please select an image: ->docker.io/library/redis:6.0 quay.io/redis:6.0 }}} - 2021/04/15 修正:もとに戻したい場合 - 2021/04/19 修正 - 2021/10/22 修正 * 手順 [#o73ee1e8] ユーザー毎の registries.conf にリポジトリを docker.io だけ指定します #prism(bash){{{ conf_src="/etc/containers/registries.conf" conf_user="$HOME/.config/containers/registries.conf" [ -d "${conf_user%/*}" ] || mkdir -p "${conf_user%/*}" sed '/^unqualified-search-registries.*quay.io/s/=.*/= ["docker.io"]/' "$conf_src" | sed '/^registries.*quay.io/s/=.*/= ["docker.io"]/' >"$conf_user" }}} もとに戻したい場合 #prism(bash){{{ rm $HOME/.config/containers/registries.conf }}}