現象
自宅の CasaOS で動かしている Portainer で docker イメージの pull が突然できなくなりました。
このとき CasaOS のパッケージで同時に tailscale もインストールしていました。
原因
切り分けのため CasaOS パッケージの tailscale をアンインストールしてみましたが、現象は改善しません。
恐らくですが、docker デーモンの再起動がきっかけで問題が発生しているようです。
根本的な原因は docker が作成する仮想 nic と tailscale の仮想 nic が競合することで発生するらしい。具体的には tailscale が先に起動するとうまくないようです。
対策
1. tailescape を CasaOS パッケージから公式に切り替え
curl コマンドなのでバージョンの追随が面倒だと思っていましたが、
実体は、apt しているようです。
独自の apt ソースの追加とパッケージのインストールを curl で取ってきたスクリプトで行っているようです。
$ curl -fsSL https://tailscale.com/install.sh | sh2. tailscale の起動順を docker の後に固定
$ sudo mkdir -p /etc/systemd/system/tailscaled.service.d
$ sudo tee /etc/systemd/system/tailscaled.service.d/after-docker.conf <<'EOF'
[Unit]
After=docker.service
PartOf=docker.service
EOF
$ sudo systemctl daemon-reload
; 以下で反映を確認
$ systemctl cat tailscaled
$ systemctl show tailscaled -p After -p PartOf3. 動作確認
$ sudo tailscale up
$ sudo systemctl restart docker
$ sleep 5
$ systemctl is-active tailscaled
$ ip route get 1.1.1.1
$ docker pull hello-world参考
Tailscale Linux インストール
https://tailscale.com/kb/1031/install-linux/
コメントを残す