問題
DockerのCentOS7イメージ利用時に
$ docker run -it --name=sample docker.io/centos:7 /bin/bash
でコンテナを起動するとsystemctlが使用できません。
その場合、
$ docker run -d --privileged --name=sample docker.io/centos /sbin/init
とコンテナを起動し、
$ docker exec -it sample /bin/bash
でコンテナ内に接続するとsystemctlが使えるのですが、lessコマンドで
WARNING: terminal is not fully functional
という警告が表示されてたり、topコマンドが使えなくなってしまいます。
原因
Dockerコンテナ起動時にttyが生成されないため。
解決策
docker runするときに-tオプションを使用追加します。
$ docker run -td --privileged --name=sample docker.io/centos /sbin/init
$ docker exec -it sample /bin/bash
これでlessやtopが使えるようになります。