タグ別アーカイブ: Docker

dockerコンテナで systemctlコマンドを実行したい

dockerコンテナでCentos7の環境作って

例えばこんなコマンド

systemclt start mysqld.servise
などのような、「systemclt」を実行しようとすると
「Failed to get D-Bus connection: Operation not permitted」
みたいなメッセージで怒られる。
パーミッションがないのか??

調べてみたところ「–privileged」オプションをつけて
コンテナを立ち上げたあとに docker exec で入れば実行できるらしいのだけど
僕の環境だと、下記コマンド実行するとloginを求められて、
よくわからないことになった。。。

なので、SELinuxを無効にする方法を試してみたら
うまくいったので、今回はこちらを採用したよ

SELinux の状態確認

enforcing ・・・ 有効、アクセス制限あり
permissive ・・・ 有効、アクセス制限なし
disabled ・・・ 無効

無効にするには
/etc/selinux/config
上記ファイルの
SELINUX=enforcing

SELINUX=disabled
に変更

無効にした後に、下記コマンドを実行したら解決したよー

Dockerのインストール

乗り遅れちゃいかん!

と思って、Dockerを触ってみたので、メモメモ

■インストール

■サービススタート

■CentOSイメージを取得

■imageの確認

■コンテナ起動

~ オプション ~
-t ・・・ttyを確保。/bin/bashなどでコンテナを操作する際に指定。
-i ・・・コンテナの標準入力を開く。/bin/bashなどでコンテナーを操作する際に指定
-d ・・・バックグラウンドで実行。WebやAPサーバなど常時実行するコンテナーで指定
–name・・・{コンテナ名}
{イメージ名}:{タグ名}
コンテナで実行するコマンド

■コンテナ環境一覧

「-a」をつけると、落ちてるコンテナも表示

■コンテナ起動、終了、接続

ログイン状態を抜けるには”control”を押した状態で”P、Q”を順番に押す
これを「dettach(デタッチ)」と呼ぶ
exitコマンドとかで抜けると、起動したコンテナも停止しちゃうよ

とりあえず、基本的なのはこんな感じ