問題タブ [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.
python - docker-py のコンテナーとのポート バインドが機能しない
docker-py を使用してコンテナーを実行し、ポートをホストにバインドしようとしています。申し訳ありませんが、私は Docker を試したことがありませんが、多くのことを試してみましたが、自分の間違いがどこにあるのかわかりません。
私のdocker APIのバージョンは1.22です
コンテナを作成するための私のコードは次のとおりです。
コンテナは作成されますが、 bind はありません:
ただし、ホストはコマンドを受け取りました。2375 ポートで着信トラフィックをキャプチャしました。結果は次のとおりです。
ホストに直接バインドしようとすると、問題なく実行されます。
誰かが同じ問題を実験しましたか?
よろしくお願いします!
gcloud - gcloud API を使用して dockerpy を認証するにはどうすればよいですか?
プログラムで Docker イメージを「gcr」レジストリにプッシュしようとしました。「gcloud docker --authorize-only」は、短時間のライブ認証を提供します。
シェルを実行せずに python gcloud API を使用して認証を実行するにはどうすればよいですか?
python - docker python API を使用してコンテナーをリンクする
docker python API ( pip install docker-py
) を使用してコンテナーを作成し、それを docker-compose で作成した既存のコンテナーにリンクしたいと考えています。
コマンド ラインを使用すると、これは簡単です。
docker run --link EXISTING_CONTAINER:LINK_NAME mycontainer:mytag
しかし、docker API を使用すると行き詰まります。docker.Client().create_container()
-undocumented-parameter を取るメソッドを使用する必要があると思いますlinks=
。(ドキュメントはかなり不完全だと強く思います...)。
docker-compose コードを読んでみましたが、これはlinks=
パラメーターを使用しているようですが、方法がわかりませんでした。
私の最初の試みはうまくいきませんでした:
client_obj.create_container(..., links=(('EXISTING_CONTAINER', 'LINK_NAME'),))
...これは、docker-compose コードが行っていることだと思います。
誰かがここで私を助けてくれますか?
python - 特権モードなしで Docker 環境の Docker のコンテナ間のネットワーク トラフィックを操作しますか?
docker コンテナーが他の docker コンテナー内で実行されている環境で (特権として実行するのではなく、docker ソケットをマウントすることによって)、次のようなことを行うためにネットワークを操作する方法はありますか?
- レイテンシーを導入する
- パケットのドロップ %
- 帯域幅の上限
私はコンテナーからの docker-to-docker トラフィックにのみ関心があります。docker-py (環境内) で自分自身を開始しています。docker から localhost へ、docker からインターネットへなど、他のトラフィックを操作することは気にしません。多くの点で、docker-docker ネットワーク トラフィックのみを操作することが理想的です。
次のいずれかの状況で実行されている docker コンテナー内でも、これを行う方法はたくさんあります。
- 特権モード
--cap-add=NET_ADMIN
フラグ ランタイムを渡す
いくつかのユーティリティ (iptables、tc、およびそれらを使用して実装されたあらゆる種類のライブラリ) ではこれが可能です。ただし、「ホスト」コンテナは特権モードで起動されないため、すべての環境で利用できるよりも高い権限が必要です。
システム構成を制御できません。これらのコンテナーは、特権モードで開始するのではなく、別のコンテナー内で実行する必要があります。上記のユーティリティのいずれかを使用できるため、これを変更できれば簡単です。
すべてのコンテナは、単純に によって作成されたネットワークに接続されていdocker network create foobar
ます。
Python3.4 で書かれた私のアプリケーションは、OSX で docker-py を使用しています。
- docker から docker へのネットワーク特性のネットワークを操作して、レイテンシーやパケットドロップなどを導入する方法はありますか?
curl - リモート ホストのプライベート レジストリから Docker イメージをプルしますか?
host1 で実行されているプライベート レジストリに Docker イメージをプッシュしました。ただし、リモート ホスト (host2) からイメージを取得しようとすると、次のエラーが表示されます。
Docker コマンド:docker pull <host1>:5000/alpine:latest
結果:Error response from daemon: Get https://<host1>:5000/v1/_ping: EOF
代わりに呼び出しでdocker pull
画像を取得するにはどうすればよいですか??http
https
--insecure-registry
フラグを指定してdockerデーモンを起動するなど、すべてのオプションを調べました。ここで達成しようとしていることに影響を与えるものはないようです。
リモートホストからの次のcurlコマンドは、データを取得しました
https を使用した同じ curl コマンド: データの取得に問題があるようです
python - docker-py: ビルドが成功したかどうかを確認するにはどうすればよいですか?
Python 3 できちんとしたパイプラインを構築しようとしています。私の問題です。すべてがうまく機能しているように見えます。Jenkins は常に緑色のバブルを表示しますが、docker ビルドの実行に失敗することがあります。
したがってclient.build
、何らかの理由でビルドが壊れてもエラーは発生しません。
ビルドが失敗した場合、エラーは発生しません。
正しい方法、ビルドが完了したことを確認する方法、および有効なメッセージが表示されない場合の方法を見つけるのを手伝ってもらえますか? 私は完全に迷っています。
よろしくミルコ
python - docker-py を介してメッセージをファイルとして渡す
docker を介してメッセージをファイルとして渡し、docker シェルで実行する方法はありますか?
たとえば、x = "print 12345" の場合、x の値を Python ファイルとして渡し、コンテナーにコピーできますか。次に、シェルを使用してこの python ファイルを実行しますか?
python - docker-py getarchive 宛先フォルダー
このリンクの get_archive()リンクの指示に従っています が、コンテナーを作成する代わりに、私の場合は「docker-nginx」を入力文字列として、またコンテンツが存在する宛先フォルダーとして既に実行中のコンテナーを使用しようとしていました。 nginxサーバーで「/usr/share/nginx/html」としてフォルダーの統計の出力も取得しました。抽出されたtarファイルがどこにない場合、この関数で宛先フォルダーを指定する方法を知りたいですか? ファイルがダウンロードされた場所を特定できませんでした
ここに私のコードがあります
strm,stat=c.get_archive(container_name,'/usr/share/nginx/html')
print(strm)<requests.packages.urllib3.response.HTTPResponse object at 0x7fe3581e1250>
の出力は print(stat) の出力は{u'linkTarget': u'', u'mode': 2147484157, u'mtime': u'2016-10-05T09:37:17.928258508-05:00', u'name': u'html', u'size': 4096}
python - Docker を実行する Python スクリプト
Python スクリプトの流れ:
- Pythonスクリプトからdockerイメージを実行したい。
- docker イメージを実行した後、docker コンテナー内に tar ファイルを作成するシェル スクリプトを実行する必要があります。
- その tar ファイルを Docker コンテナからホスト マシンにコピーする必要があります。
- そして、pythonスクリプトは、ホストマシンで実行されるいくつかのものを続行する必要があります.
docker-py モジュールを使用して、次のことができました。
ホスト上で docker イメージとコンテナーが実行されているのを確認しましたが、docker コンテナー内でシェル スクリプトを実行したい場合、どうすればよいですか? その後、tar をコンテナーからホストにもコピーする必要があります。誰かがこれを行う方法を提案できますか?
amazon-web-services - Ansible docker_container 'リクエスト URL にホストがありません'、docker pull は正しく動作します
Ansible プレイブックを使用して、AWS でインフラストラクチャをプロビジョニングしようとしています。私はインスタンスを持っており、docker-engine、docker-py などをプロビジョニングできます。そして、昨日これが正しく機能し、それ以来コードを変更していないことを誓います。
私のプレイブックの関連部分は次のとおりです。
私{{ docker_registry }}
はに設定されてmy-acct-id.dkr.ecr.us-east-1.amazonaws.com
おり、得られる結果は次のとおりです。
ただし、前述のように、これは昨夜正しく機能しました。それ以来、VPC/サブネットにいくつかの変更を加えましたが、インスタンスに ssh でき、docker pull my-acct-id.dkr.ecr.us-east-1.amazonaws.com/example
問題なく実行できます。
同じエラーを抱えている他の人を見つけることができないように見えるので、グーグルは私をそれほど遠くまで導きませんでした。何が変わったのか、どうすれば直せるのか気になります!ありがとう!
編集: バージョン:
- アンシブル-2.2.0.0
- ドッカー-1.12.3 6b644ec
- ドッカー-py-1.10.6