2016-09-10 14 views
0

私はWindows上でDockerを実行しています( "Docker for Windows"ではなく "Docker Toolbox")。

私は内部にレールアプリで画像を構築しました。私のMac OSでは正常に動作しますが、Windows上では動作しません。

両方のマシンでDocker 1.12とドッカーマシン0.8.0を使用します。私はマシンを作成し、画像からコンテナを実行しようとすると

、私が行います

docker run -it myRepo:myTag bash 

私のMac OS上で対話型端末を開いているが、Windows 7とWindows Server 2011の両方に対応しています。私はドッカークイックスタートターミナルが、古いcmd.exeの再経由にMinGW64シェルを使用

"Error response from daemon: oci runtime error: exec: "bash": executable file not found in $PATH."

同じに変わります。

誰でもこの問題を解決できますか?私は解決策を見つけるのに数時間をかけましたが、Windowsの回答が少なすぎます。

ありがとうございます!

+0

MSYS2をインストールする必要があります(MinGW64にはシェルがあればOKかもしれません)。その後、Windowsシステムまたはユーザパスに 'bash.exe'へのパスを指定してください。 –

答えて

1

また、Windows 7とMINGW64を併用しています。ここで私は例としてnginxを使用して得るものです:

$docker run -it nginx bash 
    cannot enable tty mode on non tty input 

私はあなたがにMinGW64を使用して端末を開くことができないと思います。あなたが試すことができ

$docker run -i nginx bash 
    ls 
    bin 
    ... 

あなたなりますので、ノープロンプトまたはあなたがコンテナ内にある任意の表示。ただlsを実行し、あなたのコンテナの内部で動作するはずです。

別のオプションは、TTYのためwinptyを使用しようとすることです:

$ winpty docker run -it myRepo:myTag bash 
    [email protected]:/# 

あなたは試したことがありますか?

$ winpty docker run -it myRepo:myTag /bin/bash 

あなたが言及している問題はありませんでしたが、ボリュームをマッピングしていたときに私は以前見ました。

MINGW64を使用してボリュームをマッピングする場合は、ローカルマッピングの前に余分に/を追加する必要があります。例:

docker run -p 8080:80 -v "/$PWD":/var/share/nginx/html nginx 

あなたの所見を教えてください。

+0

あなたの提案されたソリューションをありがとう。試してフィードバックを与えます。 –

関連する問題