CentOS7 の docker コンテナが /var/run/docker.sock にアクセスできない備忘録

Networks
Photo by hyt.

CentOS7 の docker コンテナが /var/run/docker.sock にアクセスできない備忘録です.

今日,Windows Update に合わせて,CentOS7 もアップデートしたら,なぜか portainer.io とか ctop とかの /var/run/docker.sock にアクセスする系のコンテナが動かなくなってしまいました.

最初は,スタートアップスクリプトが置き換えられたか何かで /var/run/docker.sock のアクセス権限が変更された(私は一般ユーザー権限で docker を使えるよう設定しています.以下のページ参照)のかと思ったのですが,どうも違ってる.

CentOS7 に docker を入れる備忘録
CentOS7 に docker を入れる備忘録です.今回はホントに単なる備忘録です. CentOS7 の最小構成からの導入です. 入れるだけなら簡単ですね.念のため,依存パッケージの情報も載せておきます. $ cat /etc/cento...

色々調べた結果,原因は,

selinux が /var/run/docker.sock へのアクセスを拒否

していました.

回避する方法は,

  • selinux を無効化する
  • /etc/sysconfig/docker の OPTIONS から –selinux-enabled を外す

とかでも良いみたいですが,今回は

SELinuxを有効にしている場合にDockerコンテナからホストのファイルシステムにアクセスできない場合の対処法 - hylom's
dockerでローカルのファイルシステムをコンテナ内にマウントして利用するとき、パーミッションは適切なはずなのにそのディレクトリにアクセスできないトラブルに遭遇(環境はFedora 25)。  とりあえず、SELinuxの状況を確認。 # ...

を参考に selinux の設定を以下の通り変更しました.

# semanage permissive -a container_t

簡単に調べてみると,どうもこれで container_t ドメインのアクセスが許されるらしい.ただし,permissive -a の場合は,/var/log/audio/audit.log にアクセス記録が残るらしいです.

なお,プロセスがどのドメインで動いているのかは,

# ps axZ|grep portainer
system_u:system_r:container_t:s0:c71,c200 4888 ? Ssl   1:06 /portainer --ssl --sslcert /certs/vhub3.crt --sslkey /certs/vhub3.key
unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 30319 pts/0 S+   0:00 grep --color=auto portainer

のようにすれば分かるみたいです.確かに container_t で portainer.io のプロセスが動いているみたいですね.

selinux あまり理解してなくて(これまでは基本的に無効にしてた)色々アヤフヤなので,もう少し勉強しないといけないかなぁ……

以上!

NetworksServer
スポンサーリンク
Following hyt!
タイトルとURLをコピーしました