問題タブ [docker-compose]
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.
docker - 再起動後、単一ノードの Docker 化された Consul クラスターに IP を保持するにはどうすればよいですか?
私はDockerとConsulを初めて使用し、現在3つのDocker化されたノードで構成されるローカルConsulクラスターをセットアップしようとしています. 私はprogrium/consul
Docker イメージを使用しており、説明されているチュートリアルと例全体を確認しました。
再起動/再起動するまで、クラスターは正常に動作します。
これが私のものdocker-compose.yml
です:
---
node1:
command: "-server -bootstrap-expect 3 -ui-dir /ui -advertise 10.67.203.217"
image: progrium/consul
ports:
- "10.67.203.217:8300:8300"
- "10.67.203.217:8400:8400"
- "10.67.203.217:8500:8500"
- "10.67.203.217:8301:8301"
- "10.67.203.217:8302:8302"
- "10.67.203.217:8301:8301/udp"
- "10.67.203.217:8302:8302/udp"
- "172.17.42.1:53:53/udp"
restart: always
node2:
command: "-server -join 10.67.203.217"
image: progrium/consul
restart: always
node3:
command: "-server -join 10.67.203.217"
image: progrium/consul
restart: always
registrator:
command: "consul://10.67.203.217:8500"
image: "progrium/registrator:latest"
restart: always
次のようなメッセージが表示されます。
[ERR] raft: Failed to make RequestVote RPC to 172.17.0.103:8300: dial tcp 172.17.0.103:8300: no route to host
これは明らかに、再起動後にノード 2 と 3 が取得する新しい IP によるものです。それで、これを防ぐことは可能ですか?リンクと環境変数について読みましたが、これらの変数も再起動後に更新されないようです。
bash - docker-compose での複数プロセスの実行と順序付けの問題
Zookeeper サーバーと API のブートストラップ プロセス、および docker-compose を使用して API によって Zookeeper サーバーに書き込まれたデータを消費する必要がある別のプロセスを起動しようとしています。
docker-compose up を実行すると、Zookeeper サーバーが正常に起動し、ブートストラップ API が接続してデータを正常に書き込むことができます。
ここでの制約は、API がデータを飼育係に書き込むのを 2 番目のプロセスが待機する必要があることです。それ以外の場合は、それまで API によってノードが作成されないため、例外が発生します。したがって、docker-compose.ml ファイルのコマンド セクションで、bash コマンドを実行し、プログラムが終了しないように while ループを追加してブートストラップ API を無限に実行し、2 番目のプロセスにスリープ ステートメントを追加しました。 API がジョブを完了するまで待機するようにします。(一種の競合状態処理)。
私が理解したことから、docker-compose は docker-compose.yml ファイルの「リンク」を使用して順序付けを処理しますが、起動する必要がある個々のプロセスの状態は処理しません。つまり、最初のプロセスが正常に終了したら、2 番目のプロセスを開始する必要があります。
これが私のdocker-compose.ymlファイルです-
詳細が必要な場合は、お知らせいただければ幸いです。前もって感謝します。
docker - 特定のコンテナのみを docker-compose up
docker-compose.yml
複数のコンテナを含む があります。そのうちの 3 つは私のアプリ (クライアント、サーバー、データベース) 用で、残りはさまざまな開発ツール (psql、npm、manage.py など) 用です。実行するとdocker-compose up
すべてが開始されますが、主要な 3 つだけを開始する必要があります。指定したリンクのおかげで、これら 3 つだけで開始できますdocker-compose up client
が、出力はその 1 つのコンテナーからのみになります。それで、次のいずれかを行う方法はありますか?
- docker-compose にどのコンテナーを開始するかを指示します。
docker-compose up
- リンクされたすべてのコンテナーから出力を取得する
docker-compose up client
directory - Docker は、再起動後にホスト上のディレクトリを再作成します
ホストからコンテナーにディレクトリをマウントする docker-compose を使用して、自分のシステム (ubuntu 14.04) にいくつかのコンテナーを作成しました。これで、ホストを再起動するたびに、コンテナーが存在しなくなっても、これらのディレクトリが再作成されます (したがって、ディレクトリを削除しました)。
例: gitlab-ci のコンテナーがありました
ファイル/ディレクトリを含む
ディレクトリを削除しました
今、
再起動するたびに作成されます。どうすればそれらを取り除くことができますか?
django - Docker Compose で Django/PostgreSQL プロジェクトを設定する正しい方法は何ですか?
Docker Compose を使用して Django/PostgreSQL プロジェクトをセットアップおよび構成するための最良の方法を教えてください。
(すべての最新バージョン、python 3.4、django 1.8.1 など)
docker - Docker-compose が boot2docker に正しくインストールまたは実行されない
Windows コンピューターに docker-machine を正常にインストールしました。Windows ボックスで Docker CLI を使用して、boot2docker VM で docker コマンドを実行できます。
私は docker-machine バージョン 0.2.0 と docker 1.6.2 を使用しており、"uname -r" を実行すると VM は "4.0.3-boot2docker" を生成します。
ここで、docker-compose をインストールして、その boot2docker VM を管理したいと考えています。docker-compose は Windows マシンで実行され、docker のように VM を「リモート」で管理しますか? それとも VM 自体にインストールする必要がありますか?
関連するメモとして、次のようにして VM に docker-compose をインストールしようとしました。
これは問題ありませんが、docker-compose を実行しようとすると機能しません。
ファイルは /usr/local/bin にあり、docker とまったく同じ権限を持っています。
足りないものはありますか?
docker - docker-compose でイメージ名を指定するにはどうすればよいですか
ここに私のdocker-composeファイルがあります
docker-compose build
そして、コマンドでイメージを構築しました。
名前付きのイメージを作成するにはどうすればよいですか? 名前のない画像が多すぎたので
DOCKERFILE
docker-compose.yml
ノーネームの画像が多すぎる
apache-kafka - Docker を使用したカフカ
docker に kafkaイメージをインストールしたいので、https://registry.hub.docker.com/u/wurstmeister/kafka/で試してみましたが、コマンド ライン docker pull wurstmeister/kafka に書き込むと、これが得られましたエラー:
誰でも問題を知っていますか?
docker - docker 内で docker を実行中にエラーが発生しました
私の開発マシンは OSX です。私は boot2docker を使用して開発用のdockerを実行しています (これを docker -1と呼びます)。私のアプリはdockerコンテナも使用しています(したがって、docker内で実行されているdockerです-これをdocker-2と呼びます)。
通常、開発マシンでdocker-composeを使用してdocker-1を起動します。問題は、私が実行するときです
docker-compose run web /bin/bash
次に、docker-1 bash プロンプトで docker を起動してみます。
サービスドッカーの開始
サービスが開始されたように見え、pid ファイルが作成されますが、停止します。/var/log/docker.log
読む:
time="2015-05-21T12:40:23Z" level=warning msg="Udev sync is not supported. This will lead to unexpected behavior, data loss and errors"
time="2015-05-21T12:40:23Z" level=error msg="There are no more loopback devices available."
time="2015-05-21T12:40:23Z" level=info msg="+job serveapi(unix:///var/run/docker.sock)"
time="2015-05-21T12:40:23Z" level=info msg="Listening for HTTP on unix (/var/run/docker.sock)"
time="2015-05-21T12:40:23Z" level=fatal msg="Shutting down daemon due to errors: error intializing graphdriver: loopback mounting failed"
そのため、最初はこれはドッカーの問題だと思いました。しかし、docker-1を手動で起動すると、 docker-composeをバイパスして次のように実行します。
docker run --privileged=true -ti ウェブサイト /bin/bash
次に、プロンプト内で docker を起動してみてください。すべてが期待どおりに機能します。
サービスドッカーの開始
成功 - docker が開始され、適切に実行されています!
これは、docker-composeに問題があるか、セットアップに問題がある可能性が高いと思わせます。しかし、私はマニュアルに目を通しましたが、私の目を引くものは何も見ませんでした.
docker-compose.yml
db:
image: postgres
ports:
- "5432"
redis:
image: redis
ports:
- "6379"
web:
privileged: true
build: .
volumes:
- .:/app
environment:
- A=b
ports:
- "3001:3000"
links:
- db
- redis