2016-10-20 9 views
0

実行中のドッカーコンテナ内でソルト状態の一部としてシェルコマンドを実行する方法はありますか?私はSaltのdockerngモジュール全体が非常に混乱していることを発見しました。実行中のドッカーコンテナでソルト状態を実行するには

私はそれがこのように動作するはずのドキュメントから把握できるものから:

mystate: 
    dockerng.run: 
     - name: 12345 
     - cmd: bash -l -c ifconfig 

場合ではないようです。

sudo salt-ssh -i box_with_docker_containers state.apply 

エラー:

State 'dockerng.run' was not found in SLS

+1

dockerng.runの代わりにdockerng.runningを意味しますか? https://docs.saltstack.com/en/latest/ref/states/all/salt.states.dockerng.html#salt.states.dockerng.running –

+0

いいえ、コンテナが起動しています。私はそれに接続し、bashコマンドを実行することができます。それが私がソルトにして欲しいものです。 – wishi

+1

'dockerng'は' run'関数を持っていないので、 'dockerio.run'を使ってコンテナ内でコマンドを実行することができます。https://docs.saltstack.com/en/latest/ref/states/all/salt.states。 dockerio.html#salt.states.dockerio.run –

答えて

1

dockerng.runモジュール:

dockerngモジュールはrun機能を含む:

mystate: 
    module.run: 
    - name: dockerng.run 
    - m_name: 12345 
    - cmd: bash -l -c ifconfig 
マスタに

コマンド

は、モジュールの名前です。m_nameコマンドを実行するコンテナ名またはIDです。cmdがコマンドです。

dockerngモジュールの詳細については、salt.modules.dockerngのドキュメントを参照してください。

状態内からモジュールを実行する方法の詳細については、salt.states.moduleを参照してください。

非推奨dockerio.run状態:dockerio.runを使う

あなたは、特定のコンテナ内のコマンドを実行することができます。

mystate: 
    dockerio.run: 
    - name: bash -l -c ifconfig 
    - cid: 12345 

は、コンテナ内で実行するコマンドであるとcidコンテナのIDまたは名前。

dockerioはバージョン2015.8.0から非推奨になりました。今後の機能の開発はdockerngでのみ行われます。

関連する問題