dockerコンテナでCentos7の環境作って
例えばこんなコマンド
1 |
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を求められて、
よくわからないことになった。。。
1 |
docker run --privileged --name test -d centos:centos7 /sbin/init |
なので、SELinuxを無効にする方法を試してみたら
うまくいったので、今回はこちらを採用したよ
SELinux の状態確認
1 |
# getenforce |
enforcing ・・・ 有効、アクセス制限あり
permissive ・・・ 有効、アクセス制限なし
disabled ・・・ 無効
無効にするには
/etc/selinux/config
上記ファイルの
SELINUX=enforcing
を
SELINUX=disabled
に変更
無効にした後に、下記コマンドを実行したら解決したよー
1 2 |
docker run --cap-add=SYS_ADMIN --name test -d centos:centos7 /sbin/init docker exec -it test /bin/bash |