2017-05-23 12 views
0

Dockerがコンテナ内のホストにインストールされたアプリを実行できるかどうかを知りたいので、ハードディスクスペースを浪費する各イメージにアプリケーションをインストールする必要はありません。Linux + Docker - Dockerコンテナからホストのアプリケーションを実行するには?

Linuxは依存関係とパッケージがローカルに必要なので、私は知っていますが、Windows VMのように使用することができるのだろうかと思います。 Windows Hyper-Vでは、ポータブルアプリケーションを含むネットワークフォルダをコンテナと共有し、Windows VM内からアプリケーションを実行することでこれを行いました。 ありがとうございます。

答えて

2

ホスト上の実行可能ファイルを含むディレクトリをコンテナにリンクすることができます。その後、コンテナ内でアクセス可能になります。これを行うには、VOLUMES -- Mount a host directory as a data volumeを使用し、ホストディレクトリ(ここでは/ tmp/foo)をコンテナ(ここでは/ foo)にマウントし、コンテナの場所/foo/foo.shにfoo.shというスクリプトを実行します。

mkdir /tmp/foo 
echo -e "#\!/bin/sh\n\necho foo" > /tmp/foo/foo.sh 

docker run --rm -v /tmp/foo:/foo alpine sh /foo/foo.sh 
=> foo 

同じように、あなたはあなたのコンテナに自分のホストからバイナリを追加することができます...しかし、私はこれが意図されており、コンテナがlightweight-」、独立したスタンドアロンとして動作するはずですので、使用すべきでないと思いますVM "と呼ばれる。ホストマシンに不要な依存関係を追加します。これは優雅な解決策ではないようです。

関連する問題