#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
}}}

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS