Machine: 提案: `docker-machineexec`を追加します

作成日 2015年04月29日  ·  5コメント  ·  ソース: docker/machine

これらは環境変数を設定してからコマンドを実行します。 例えば

docker-machine exec mymachine docker images
docker-machine exec mymachine ./my-docker-wrapper.sh

最も参考になるコメント

これはすでにsshが行っていることのように聞こえますか?

docker-machine ssh mymachine -- ifconfig -a
docker-machine ssh mymachine -- docker info
docker-machine ssh mymachine -- "echo uname -a > test && chmod +x test && ./test"

それがどのように違うのか詳しく説明していただけますか?

全てのコメント5件

これはすでにsshが行っていることのように聞こえますか?

docker-machine ssh mymachine -- ifconfig -a
docker-machine ssh mymachine -- docker info
docker-machine ssh mymachine -- "echo uname -a > test && chmod +x test && ./test"

それがどのように違うのか詳しく説明していただけますか?

Dockerホストで実行したくないので、ローカルで実行したいのですが、Dockerをセットアップしてリモートホストと通信します。 基本的に、より単純なバージョン

bash -c "eval $(docker-machine env mymachine);
docker images
"

最外殻の環境を変更するのはあまり好きではありません。変更したことを忘れ続けていると、突然dockerの動作が異なり、混乱します。

少し冗長ですが、マシンで1回限りのDockerコマンドを実行する場合は、通常docker-machine config使用します。これにより、特定のマシンに接続するための正しいdockerフラグが吐き出されます。

$ docker $(docker-machine config name) info

入力するのが多すぎる場合は、次のように小さなシェルエイリアスを作成することもできます。

dkrm () {
    docker $(docker-machine config $1) "${@:2}"
}

最初の引数で指定されたマシンにDockerクライアントをポイントし、残りをDockerクライアントに渡します。

次のような使用法:

$ dkrm devbox ps
... some containers on the machine "devbox"
$ dkrm staging ps
...some containers on the machine "staging"

それは役に立ちますか?

私はそのコマンドを知らなかったので、ありがとう。 役に立ちますが、execコマンドほど透過的ではありません。 たとえば、docker-compose、fig、またはあらゆる種類のラッパースクリプトで使用するのは困難です。 現在のディレクトリにあるいくつかのファイルからDockerfileを構築し、 docker build -介してフィードするものがあります。

DOCKER="docker $(docker-machine config mymachine)" ./build.shようなことをして、スクリプトに: ${DOCKER:=docker}を含めることができます。 だからそれは実行可能です。 docker-composeについてはよくわかりません。

ええ、ええ、 docker-composeを使用したい場合は、適切な環境変数を設定するのが最善です。

このページは役に立ちましたか?
0 / 5 - 0 評価