次のように 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になることもありません。
コメント