Docker上のCentOS7でsystemctlを使えるようにしたらDockerホストでローカルログインができない

ALL
スポンサーリンク

次のように docker run で、–privileged 、/sbin/init を指定すると、CentOS7の Dockerコンテナで systemctl を使えるようになります。

docker run -it -d --privileged --restart unless-stopped --name centos7 centos:centos7 /sbin/init

ところが、このDockerコンテナが起動するタイミングで、DockerホストのGUIログイン画面が終了し、CUIログイン画面になってしまいました。

また、Dockerホストにローカルログインできなくなりました。
ログインコンソールが、Docker上のCentOS7のものになってしまうため、Dockerホストにローカルログインできなくなってしまいます。

どうも、後から起動したDocker上のCentOS7の仮想コンソール(tty)と、Dockerホストのttyが競合するためのようです。

回避方法は、Dockerコンテナで次を実行して、Dockerコンテナ側の tty1 を無効化します。
その後、Dockerホストを再起動してください。

systemctl mask getty@tty1

これで、Dockerホストでローカルログインもできるようになります。また、GUIログインの場合は、GUI画面が終了してCUIになることもありません。

コメント