dockerコンテナでCentos7の環境作って
例えばこんなコマンド
docker run -t -i -d --name test centos:centos7 /bin/bash
systemclt start mysqld.servise
などのような、「systemclt」を実行しようとすると
「Failed to get D-Bus connection: Operation not permitted」
みたいなメッセージで怒られる。
パーミッションがないのか??
調べてみたところ「–privileged」オプションをつけて
コンテナを立ち上げたあとに docker exec で入れば実行できるらしいのだけど
僕の環境だと、下記コマンド実行するとloginを求められて、
よくわからないことになった。。。
docker run --privileged --name test -d centos:centos7 /sbin/init
なので、SELinuxを無効にする方法を試してみたら
うまくいったので、今回はこちらを採用したよ
SELinux の状態確認
# getenforce
enforcing ・・・ 有効、アクセス制限あり
permissive ・・・ 有効、アクセス制限なし
disabled ・・・ 無効
無効にするには
/etc/selinux/config
上記ファイルの
SELINUX=enforcing
を
SELINUX=disabled
に変更
無効にした後に、下記コマンドを実行したら解決したよー
docker run --cap-add=SYS_ADMIN --name test -d centos:centos7 /sbin/init docker exec -it test /bin/bash
コメント