Help us understand the problem. What is going on with this article?

CentOS7のDockerコンテナでsystemctlを使えるようにする

Failed to get D-Bus connection: Operation not permitted が出た場合の対処法まとめ

色々な場所で色々な対処法が書かれていますが、結論として以下の2つが必要です。

  • privilegedを有効(true)にする
  • /sbin/initで起動実行する

片方だけ指定して、うまくいかないな〜とかなっていませんか?(僕です)

privileged を有効(true)にする

privileged は、特権モードという意味です。これがデーモンを操作するのに必要な権限になりますが、デフォルトでこれがOFFになっているため起動できていないという事になります。

/sbin/initで起動実行する

起動時にサービスを開始し、ランレベルを設定してくれます。これでprivilegedが有効になった状態で読み込みしてくれるようになります。

docker runの場合

起動時のコマンドに以下を追加する
* --privileged
* /sbin/init

# 例)
docker run -d --privileged --name hoge centos /sbin/init
docker exec -it hoge /bin/bash

/sbin/init で特権モードで起動させてから接続するようにします。

(参考) CentOS7のコンテナでsystemctlを使うための方法
(参考) DockerでCentOS7起動時にsystemctlが動かないとき

docker-composeの場合

こちらも書く場所が違うだけで、やることは同じです。
* privileged: true
* command: /sbin/init

docker-compose.yml
services:                                      
  app:                                         
    build:                                     
      context: ./                              
    privileged: true                           
    command: /sbin/init                        
docker-compose up -d
docker-compose exec app /bin/bash

(参考) docker-compose(CentOS7系やMySQLのオプションなど)

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした