CentOS7 dockerコンテナのsystemctlを使用可能にする
TL;DR
- CentOS7docker コンテナで systemctl が使えない
- コンテナ起動時、
--privileged
/sbin/init
を指定する
$ docker run -it --privileged --name centos -d centos:centos7 /sbin/init $ docker exec -it centos /bin/bash
概要
CentOS 7 の Docker イメージは、下記コマンドにて習得できる。
$ docker pull centos:centos7
コンテナを作成してシェルを実行すると、CentOS をホスト OS であるかのようにコマンドを使用できる。
$ docker run -it -d --name centos centos:centos7 $ docker exec -it centos /bin/bash
ただし、CentOS のサービス制御コマンド systemctl
を実行すると、以下のような表示が出て使用することができない。
$ Failed to get D-Bus connection: Operation not permitted
解決法
この問題を解消するためには、コンテナ起動時に --privileged
オプションを指定した上で、 /sbin/init
を起動する。
$ docker run -it --privileged --name centos -d centos:centos7 /sbin/init $ docker exec -it centos /bin/bash