SELinuxを有効⇒無効にしたらDockerのVolumeがマウントできなくなった

ということがありました。

 

docker-compose up -dすると、以下のようなログが発生してマウントできない。

以前調べたけどSELinuxを有効⇒無効にすると起こるらしい。再度有効にして直したけど諸事情でまた無効にして、起こった。

ERROR: for docker-compose-svn_svn_1 Cannot start service svn: devmapper: Error mounting '/dev/mapper/docker-253:1-30on '/var/lib/docker/devicemapper/mnt/e0a53398de4c9ba383e6cd0e627357a7ef49dc7b8cc6a62da5d2a2dfdef7074e'. fstype=xfs op91": invalid argument
<4>[ 1575.202390] XFS (dm-3): unknown mount option [context].
<4>[ 1815.387919] XFS (dm-3): unknown mount option [context].
<4>[ 1919.308792] XFS (dm-3): unknown mount option [context].


ERROR: for svn Cannot start service svn: devmapper: Error mounting '/dev/mapper/docker-253:1-302223-e0a53398de4c9ba3evicemapper/mnt/e0a53398de4c9ba383e6cd0e627357a7ef49dc7b8cc6a62da5d2a2dfdef7074e'. fstype=xfs options=nouuid,context=
<4>[ 1575.202390] XFS (dm-3): unknown mount option [context].
<4>[ 1815.387919] XFS (dm-3): unknown mount option [context].
<4>[ 1919.308792] XFS (dm-3): unknown mount option [context].

ERROR: Encountered errors while bringing up the project.

色々調べたところ、SELinuxが有効な状態でボリュームを作成するとアクセス制御のラベルみたいなやつが設定されるけど、SELinuxが無効になっていると「なんか無効なオプション」扱いされてエラーになるらしい。

コンテナ(/var/lib/docker/containersとかにある)のconfig.v2.jsonに以下のエントリがあるので、中身を削除(=""を指定)したらマウントできた。

  • ProcessLabel
  • MountLabel

参考

xuxinkun.github.io