問題タブ [dockerpy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2128 参照

python - docker-pyで基本的なWebアプリコンテナを実行するには?

ポートで公開されたコンテナー化された Web アプリの実行を模倣しようとしています

Python でdocker-pyを使用します。これまでのところ、インスタンスを開始するための次のコードを取得しました。

しかし、パブリック ポート 1338 (最初のコマンドで正常に動作します) でコンテナーにアクセスできません。接続拒否エラーが発生します。Python呼び出しで機能的でアクセス可能なコンテナを作成するためのオプションが不足しているかどうかは誰にもわかりませんか?

コンテナーを調べると、ポートが適切に設定されていることがわかります。

ports=[1337]通話のオプションも試しましたcreate_containerが、どちらも役に立ちませんでした。

更新:これはある種のバグのようです。回避策は、TCP を明示的に指定することです。

0 投票する
2 に答える
19104 参照

python - docker コンテナー内で実行された python スクリプトの出力をキャプチャする

ここでの目的は、Docker コンテナーを安全なサンドボックスとして使用して、信頼されていない Python スクリプトを実行することですが、docker-py モジュールを使用して Python 内から実行し、そのスクリプトの出力をキャプチャできるようにすることです。

docker コンテナー内で python スクリプト foo.py を実行しています ( ENTRYPOINTDockerfile でコマンドとして設定されているため、コンテナーが実行されるとすぐに実行されます)、そのスクリプトの出力をキャプチャできません。を使用して通常の CLI 経由でコンテナーを実行すると、

(host_dirpathは foo.py を含むディレクトリです) foo.py の予期される出力が stdout に出力されます。これは、キーと値のペアの単なる辞書です。ただし、docker-py モジュールを使用して Python 内からこれを実行しようとしていますが、何らかの方法でスクリプト出力がlogsメソッドによってキャプチャされていません。私が使用しているpythonコードは次のとおりです。

「Docker logs:」という結果になるだけです-ログには何もキャプチャされておらず、stdoutもstderrもありません(これをテストするためにfoo.py内で例外を発生させようとしました)。

私が求めている結果は foo.py によって計算され、現在、pythonprintステートメントを使用して標準出力に出力されています。これを docker コンテナーのログに含めて、Python 内から読み取ることができるようにするにはどうすればよいですか? または、この出力をコンテナーの外部から別の方法でキャプチャしますか?

どんな助けでも大歓迎です。前もって感謝します!

編集:

docker-py ではまだうまくいきませんが、subprocess.Popen を使用して通常の CLI でコンテナーを実行するとうまくいきます。これを行うと、出力は実際に stdout によって正しく取得されます。

0 投票する
3 に答える
785 参照

docker - Ansible エラー: KeyError: 'ApiVersion'

Ansible 1.7 (devel) と Docker 0.9.1 ビルド 3600720 を使用していますが、次のエラーが発生します。

何か案は?動作するバージョンの組み合わせはありますか? Docker コンテナ用に「実行中」状態が追加されたため、Ansible 1.7 が必要でした。

0 投票する
2 に答える
9311 参照

docker - Docker ハブ プライベート レジストリからの Docker リモート API プル

Dockerリモート API を使用して、このように Docker ハブhttps://registry.hub.docker.com/u/myname/myappでホストされているプラ​​イベート リポジトリから Docker イメージをプルしようとしています。このようなPOSTリクエストで認証資格情報を指定する方法について、ドキュメントは明確ではありません

これは、authconfig がどのように正確に生成されるかについても詳しく述べていません。

これは、base 64 でエンコードされた json を次のような構造で送信することについて説明しています。

しかし、index_url と serveraddress とは何かを説明していません。彼らは

上記の構成では 404 が表示されます。おそらく、レジストリ ハブのプライベート リポジトリが認識されていません。

~/.dockercfg の内容を base 64 でエンコードしてみました

base64 でエンコードされた authconfig オブジェクトを生成し、上記の curl コマンドを機能させる方法を教えてください。

前もって感謝します

Docker のバージョン

0 投票する
1 に答える
315 参照

docker - Docker のデータ コンテナ : データが入力されていません

これが私の質問です。

コンテナー内のボリュームからデータを読み取る必要があります。Docker ファイルで ADD コマンドを使用してこのデータをコンテナー内に直接コピーする代わりに、データ プレースホルダー (データを保持するコンテナー) からこのデータを探す必要があります。

そこで、このデータ コンテナを作成しました。

docker run -d -v /var/lib/ABC --name ABC_datastore busybox true.

私の理解では、これにより、このコマンドを実行しているホストのディレクトリ /var/lib/ABC 内にデータを含むコンテナー ABC_datastore が作成されるはずですか? 私が間違っている?

したがって、私の理解が正しければ、このコンテナーをメインコンテナーで使用できます。 docker run -i -t --volumes-from ABC_datastore --name="ABC_ins" -d ABC_img

これにより、ABC-ins 内の /var/lib/ABC に正しい値が入力されます。しかし、それは起こっていません。ABC-ins 内のフォルダー /var/lib/ABC は空です。

また、 docker run -d -v /var/lib/ABC --name ABC_datastore busybox true;を使用してデータを入力しようとしました 。tar -c /var/lib/ABC | docker run -a stdin -i --volumes-from ABC_datastore busybox tar -xC /var/lib/ABC ここでもうまくいきません。

どんな助けでも大歓迎です。私の最終的な目標は、指定されたパスのコンテナー内で使用できる /var/lib/ABC 内の実際のデータを含むデータ コンテナーを作成することです。

0 投票する
1 に答える
200 参照

jenkins - Docker を実行して特定のポートをリッスンし、Jenkins と統合する方法

を使おうとしていますJenkins Docker plugin。残念ながら、RHEL で Docker を実行して特定のポートをリッスンすることはまだできません。

私は追加しなければならないことを知っています:

しかし、私の RHEL インストールでは/etc/init/docker.confファイルが見つかりません。

では、どのファイルを変更するのでしょうか?