問題
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
が使えるようになります。