問題タブ [linux-containers]
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.
linux - 実行中の Docker コンテナーをバックアップしますか?
実行中の Docker コンテナーをバックアップすることはできますか? コマンドはexport
それを行うのに適していますか?
architecture - コンテナー (docker) 内からアプリをアナウンスする
週末にdocker's IRCでこの質問をしましたが、答えを熟考する前に立ち去らなければなりませんでした:
コンテナ内で多数のアプリケーションを実行している場合 (ここでは、それらがすべて同じ物理ハードウェア上で実行されていると仮定しますが、そうである必要はありません)、それぞれがそれぞれを見つけられるようにしたいと考えています。その他は自動的に。
ある種のレジストリ ( etcdや DNS-SD/Bonjour など) を使用して、サービスと関連する詳細をアナウンスし、他のアプリケーションにそれらを見つけて、それに応じてトラフィックをルーティングさせることができます。
ここでの問題は、アプリケーションはコンテナー内でサービスを提供しているホスト名/ポートを認識できますが、これはアクセス可能なポートまたはアドレスである必要はないということです。結合する必要がある 2 つの情報があります。
- サービスにアクセスできる場所。コンテナの外からアクセス可能
- サービスの機能 (バージョン番号、サービスの種類); コンテナ内からアクセス可能
コンテナの壁を越えてこの情報を取得する方法を教えてください。
- TCP 経由で docker をコンテナーに公開することで、アプリはその表示場所を照会できますが、これは関心の分離に違反しているようです。
- アナウンスの準備のためにコンテナが開始された後、ホスト システムが照会するファイル/ポートをコンテナで開くことができますが、これは WSDL を再発明しているように感じます。
この問題をどのように解決すべきかについての考えやガイダンスはありますか?
php - Docker とコンテナー間の接続
ドッカーのコンテナ間の接続を作成しようとしています。php5-fpm を含む 1 つのコンテナーと、nginx を含む 2 つ目のコンテナー。
php5-fpm のデフォルトの設定、わずかな変更:
および nginx (/etc/nginx/sites-available/default):
次に、 https://github.com/jpetazzo/pipeworkとの接続を作成しようとしましたが、それが理由fastcgi_pass 192.168.1.2:9000;
です。コンテナーから直接 IP を使用してみましたが、何もしませんでした。
そして、lynxでページを開こうとすると、BadGatewayがあります。
post port MASTER_PORT=$(sudo docker port $MASTER_ID 9000) を試してみましたが、何も... ping は問題なく実行されます。nginx からポート 9000 への Telnet が数秒間開いたままになり、「接続が閉じられました...」
私が間違っていることを誰が説明できますか? どうも!
/編集/ fastcgi_pass を 172.17.42.1:9000; に変更してみました。(ホスト マシン上の docker0 のアドレス) を指定し、ホスト マシンで tcpdump を開始します。
tcpdump -i docker0 ポート 9000
そして、私が持っています:
このように、パケットはコンテナ間を移動します...しかし、なぜ BadGateway なのですか?
docker - イメージをコミットするときに Docker コンテナーの構成をコピーするにはどうすればよいですか?
Dockerfile とボリュームを使用してすべてを整理するのが理想的ですが、それが現実的でない場合や便利でない場合もあります。
たとえば、Ghost が既にセットアップされているイメージを見つけましたが、それは機能しているように見えました。というわけで、ブログ記事をいくつか追加しました。その後、実際に config.js を変更してメールを設定する必要があることに気付きました。
そこで、コンテナーを停止してコミットし、bash でいくつかの変更を行い、再度コミットしてから、Ghost を実行しているコンテナーを再び開始しました。しかし、新しいイメージには作業ディレクトリと環境の構成がなかったため、うまく機能しませんでした。
イメージをコミットするときに Docker コンテナーの構成をコピーするにはどうすればよいですか? docker inspect
コンテナ上で実行し、構成を引き出して、それをdocker commit
コマンド ラインに含めるスクリプトを作成する必要があるのではないでしょうか?
chef-infra - Dockerコンテナにchef-serverをインストールする
Docker コンテナに Chef-Server をインストールしようとしていますが、問題が発生しています。Ubuntu 12.04 の最新バージョンと Docker の最新インストールで VM を実行しています。基本の Docker Ubuntu 12.04 コンテナーを実行し、chef-server バージョン 11.0.12 をインストールすると、うまくいきます。問題は、インストール後に必要な「sudochef-server-ctl reconfigure」ステップを実行することです。セットアップがフリーズします。
そして、私はstacktrace.outを取得します
誰かがこれを経験したことがある、および/または何かアイデアを持っているなら、私はそれを感謝します.
ありがとう!
macos - OSX(boot2docker)でdockerコンテナとssh接続する方法
OSX でboot2dockerを使用して docker を使用しています。
ターミナルから実行中のコンテナーへの Ssh 接続を取得したいと考えています。
しかし、私はこれを行うことはできません:(
Docker が仮想マシンで実行されているためだと思います。
docker - docker コンテナ間でメモリを共有することは可能ですか?
私はさまざまなプロセスを持つアプリケーションで作業しており、より多くの分離を実現するためにそれらのプロセスを含めるように求められています。
問題は、データを交換するためにプロセスが単一の「ハイパーバイザー」プロセスとメモリを共有することです (従来の共有バッファーを使用します)。このソリューションは、パフォーマンス要件のために実装されました。また、ユーザー空間で実行されているため、ユーザー空間とカーネル空間の間でコンテンツを切り替えることはありません。
私が間違っていなければ、単一の IPC 名前空間内で複数の Docker コンテナーを実行することはできませんが、単一の Docker コンテナーが異なる IPC 名前空間に属している可能性があるかどうかはわかりません。これで問題が解決する可能性があります。
他のソリューションも歓迎します。ただし、パフォーマンスが要件であることを覚えておいてください。よろしくお願いします。
memory - Docker コンテナとメモリ消費量
同じ docker イメージに基づく多数の docker コンテナーを開始しているとします。これは、各 Docker コンテナーが同じアプリケーションを実行していることを意味します。アプリケーションが十分に大きく、多くのハード ドライブ メモリを必要とする場合があります。
ドッカーはどのように対処していますか?
すべての Docker コンテナーは、Docker イメージで定義された静的部分を共有していますか?
そうでない場合、docker コンテナーを実行するために使用されるマシン上のディレクトリにアプリケーションをコピーし、各 docker コンテナーにこのアプリ ディレクトリをマウントすることは理にかなっていますか?
linux - 名前付きコンテナを再起動すると、別の IP が割り当てられる
Docker を使用してアプリケーションをデプロイしようとしていますが、名前付きコンテナーを再起動すると別の IP がコンテナーに割り当てられるという問題に遭遇しました。たぶん、私がやっていることを説明すると、問題がよりよく説明されます:
- Postgres は、という名前の別のコンテナー内で実行されます。
"postgres"
$ PG_ID=$(docker run --name postgres postgres/image)
- 私の webapp コンテナは postgres コンテナにリンクしています
$ APP_ID=$(docker run --link postgres:postgres webapp/image)
postgres コンテナ イメージを webapp コンテナにリンクすると、postgres コンテナの IP を持つ hosts ファイル エントリが webapp コンテナに挿入されます。これにより、webapp 内で postgres db を指すことができますpostgres:5432
(私は Django を使用しています)。何らかの理由で postgres がクラッシュした場合を除いて、これはすべてうまく機能します。
postgres プロセスを手動で停止して postgres プロセスのクラッシュをシミュレートする前に、postgres コンテナーの IP を確認します。
クラッシュをシミュレートするために、postgres コンテナーを停止します。
今私が使用してpostgresを再起動する場合
コンテナーの ip が変更されます。
したがって、webapp コンテナー内の postgres コンテナーを指す IP は正しくありません。コンテナーに名前を付けることで、docker は特定の構成で名前を割り当てるので、コンテナー間 (ネットワークとボリュームの両方) を確実にリンクできます。IPが変更された場合、これは目的を無効にしているようです.
postgres を再起動するたびに webapp プロセスを再起動する必要がある場合、単一のコンテナーを使用して両方のプロセスを実行するよりも良いとは思えません。次に、スーパーバイザーまたは同様のものを使用して、両方を実行し続け、localhost
プロセス間のリンクに使用できます。
私はまだ Docker に慣れていないので、何か間違ったことをしているのですか、それとも Docker のバグですか?
centos - カウチベースの作成中に Docker エラーが発生しました - ulimit: ファイルを開く: 制限を変更できません: 操作は許可されていません
Couchbase の docker イメージを作成しようとしていますが、CentOS イメージの dockerfile で次のエラーが発生します。
ビルドすると、次のエラーが発生します..
docker.conf ファイルでこれらの値を設定できることをフォーラムで見ました。しかし、私はこのファイル /etc/init/docker.conf を作成して、そのファイルに次の行を入れてみました-
制限 memlock 無制限 無制限 制限 nofile 262144
しかし、それでも同じエラーが発生します。
CentOS VM で同じ手順を手動で実行すると、機能します。したがって、Docker CentOS イメージに何かを設定する必要があると思います。