問題タブ [docker-volume]
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.
mongodb - Openshift (次世代) でのボリュームのマウント エラー
Docker と Kubernetes に基づく新しい Openshift プラットフォームをテストしています。
新しいプロジェクトを最初から作成した後、単純な MongoDB サービス (および Python アプリ) をデプロイしようとすると、Web コンソールの [監視] セクションに次のエラーが表示されます。
コンテナに PVC をマウントする際に問題があるように見えますが、PVC は正しく作成され、バインドされています。
戻り値:
次のコマンドでデプロイしました。
Web コンソールからの完全なログ:
私が使用したテンプレートの内容は次のとおりです。
テンプレートに問題はありますか? それはOpenShiftの問題ですか?OpenShift ログのマウントの問題に関する詳細は、どこでどのように入手できますか?
docker - ホストの変更時にコンテナ内のデータを自動同期
ホストとコンテナの間で「ライブ同期」のようなボリュームを持つことは可能ですか? 私のポイントはNode.js
、ホスト マシンにアプリ/プロジェクトを配置し、node.js
コンテナーを実行することです。これにより、プロジェクトが取得され、プロジェクト内のファイルを変更するたびに、コンテナーを再起動することなくコンテナーですぐに更新されます。ボリュームをコピーするためのコンテナ。
現在、コンテナを持ち上げると、ソース コードがコンテナのボリュームにコピーされます。
しかし、ご覧のとおり、変更をホストからコンテナーに更新するたびに、コンテナーを再起動する必要があります。
可能であれば、docker-compose でそれを記述する方法の例と、適切なドキュメントへのリンクを提供していただけますか?
docker - swarm クラスター内のボリュームを削除するには?
マウントタイプ、マウントソース、マウントターゲットで作成しているswarmサービスを作成するときに、1つのマネージャーと別の通常のノードを備えたswarmクラスターがあります。マネージャーとノードの両方に同じ名前のボリュームを作成し、コンテナーを起動すると、サービスが起動します。
サービスをリリースすると、サービスと共に作成されたボリュームが削除されませんでしたが、これはまだ問題ありません。
私が直面している問題は、同じエンドポイントでボリュームを削除すると、Swarm Manager でボリュームが削除されるだけで、サービスの作成中にノードで作成されたボリュームがまだ存在することです。
管理者に、swarm サービスと一緒に作成されたすべてのボリュームを削除してもらいたいです。方法はありますか??
mongodb - docker コマンドで mongo を起動できませんが、コンテナー内の /bin/bash で起動できます (データ ボリュームあり)
これdocker-compose.yml
:
このエラーが発生します(抜粋):
そのイメージを直接使用してコンテナーでコマンドを実行しようとするだけの場合も同様です。
しかし、/bin/bash
コンテナーの開始時に実行して THEN startを実行すると、mongo
問題ありません。
出力に基づくと、違いは、2 番目のシナリオでは、コマンドが root として実行されることです。
だから、私の質問は次のとおりです。
- 他の方法は機能しないのに、なぜこの方法は機能するの
/bin/bash
でしょうか? - docker-compose でその理由を再現するにはどうすればよいですか?
注:OSXでは、Mongoが使用するボリュームとしてホストディレクトリをマウントできるかどうかに影響するように見えるため、私はそうしていません。
docker - docker compose でホスト ディレクトリをボリュームとしてマウントする方法
Docker 化する開発環境があり、Docker イメージを再構築せずに変更を livereload できるようにしたいと考えています。redis はアプリの依存関係の 1 つであり、redis コンテナーをリンクできるのが好きなので、docker compose を使用しています。
my に 2 つのコンテナーが定義されていdocker-compose.yml
ます。
アプリのdockerfilenode
でボリュームを追加するところまで来ましたが、ホストのディレクトリをボリュームにマウントして、コードに対するすべてのライブ編集がコンテナーに反映されるようにするにはどうすればよいですか?
これが私の現在の Dockerfile です。
私のプロジェクトは次のようになります。
docker - Kubernetes に基本イメージを入力する
Docker は名前付きボリュームをサポートしており、それらのボリュームには、マウント時にベース イメージ コンテンツが取り込まれます。
K8s にも同じことが必要です。つまり、ポッドがベース イメージのコンテンツをボリュームに取り込む必要があります。
K8s と PVC でそれは可能ですか?
elasticsearch - Docker Swarm : 同じボリュームに複数のコンテナをセットアップする方法
swarm を有効にして Docker 1.12.2 ビルド bb80604 を使用しています
私は持っている
- 2 つのリーダー ノードと 3 つのスレーブ ノードを備えた swarm クラスター。
- スレーブ ノードとリーダー ノードのそれぞれに名前付きボリューム。
- 2 台のマスター サーバーで実行されている Elistacsearch
ボリューム作成コマンド
docker volume create -d local-persist -o mountpoint=/data/docker/swarm/elasticsearch --name esvolume
docker service create コマンドを実行して Elasticsearch の 5 つのレプリカを作成すると、3 つのノード (各スレーブ サーバーに 1 つ) が起動しますが、残りの 2 つのレプリカは失敗します。
失敗時のエラーは
原因: java.lang.IllegalStateException:ノード ロックの取得に失敗しました。[[/var/lib/elasticsearch/swarmescluster]] を試行しましたロック ID [0] 付き。おそらく、これらの場所は書き込み可能ではないか、[node.max_local_storage_nodes] を増やさずに複数のノードが開始されました ([1] でした)? org.elasticsearch.env.NodeEnvironment.(NodeEnvironment.java:259) で ~[elasticsearch-5.0.0.jar:5.0.0] org.elasticsearch.node.Node.(Node.java:240) で ~[elasticsearch- 5.0.0.jar:5.0.0] at org.elasticsearch.node.Node.(Node.java:220) ~[elasticsearch-5.0.0.jar:5.0.0] at org.elasticsearch.bootstrap.Bootstrap$5. (Bootstrap.java:191) ~[elasticsearch-5.0.0.jar:5.0.0] at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:191) ~[elasticsearch-5.0.0.jar:5.0. 0] org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:286) で ~[elasticsearch-5.0.0.jar:5.0.0]
質問
- 同じパスまたは動的パスに書き込むようにレプリカを構成するにはどうすればよいですか (永続データが必要です)
- レプリカの作成時に「node.max_local_storage_nodes」の値を設定したい場合、ランタイムでどのように設定しますか?