問題タブ [docker-container]
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ボリュームオプションは、「ルート」ユーザーとしてフォルダーを作成します
PC (Fedora 24) に としてログインしていますrperez
。このユーザーを介して実行できるように Docker をセットアップしたので、次のようにコンテナーを実行しています。
$
root 以外のユーザー (を使用) としてコマンドを実行していることを意味する記号に注意してください#
。上記のコマンドは、次のディレクトリを/home/rperez/var/www
作成root
しdocker
ますroot
。
このセットアップを使用すると、所有者がそうであるため、ファイル~/var/www
を作成できません...rperez
root
これに対処する正しい方法は何ですか?これとこれを読みましたが、あまり役に立ちません。
何か助けはありますか?
docker - docker os コンテナーとアプリ コンテナーの比較
docker コンテナーを使用するベスト プラクティスが何であるかはわかりません。VM、たとえばubuntuを使用してWebアプリケーションを実行する場合、データベース、Webサービスなど、アプリケーションを実行するために必要なすべてのソフトウェアをインストールし、スタンドアロンのオペレーティングシステムのように使用します。
ただし、Docker は別の方法で使用できます。
Web アプリケーションを実行するシナリオを考えると、次の 2 つのオプションがあります。
すべてのソフトウェアを 1 つのコンテナーにインストールします。データベース、Java、および実行に必要なその他すべてのソフトウェアをインストールします (つまり、VM を使用するのと同じように使用します)。
各アプリケーションを個別のコンテナーにインストールします。データベースを 1 つのコンテナーに、Web サービスを別のコンテナーに配置し、それらを相互に通信させます。
オプション 1) は、フルスタックのアプリケーションを展開する方が簡単に思えますが、パッケージ間の依存関係の複雑さの問題や、各ソフトウェアへの OS リソースの割り当てがある場合、スケーリングが難しくなる可能性があります。
オプション 2) はデプロイが難しいように見えますが、各コンテナーはあまり苦労せずにアップグレードできます。
Docker ユーザーの間で一般的な慣行は何ですか?
編集:これに対する回答はhttps://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/#run-only-one-process-per-containerにも記載されています
.net - Docker と Octopus Deploy の違いは何ですか
AWS EC2 インスタンスに Web アプリケーションをデプロイするためだけに、しばらく Octopus Deploy を使用しています。Octopus Deploy は .NET 固有のものであり、Docker に比べて学習曲線が非常に簡単であることは認識しています。Docker を使用するポイントの 1 つは、ハイパーバイザーを使用して VM を作成するのではなく、コンテナーを作成することだと理解しています。
しかし、私の質問は、octopus deploy よりも Docker を使用する本当の理由は何ですか? これは、アプリケーションの展開に適しています。彼らは違うことをしますか?
networking - リンク付きの Docker Compose を使用したターミナル
ブリッジ ネットワークの下で 3 つのサービス (db、nginx、および Web サービス) をリンクし、ローカルホストまたはコンテナー内からさまざまなサービスを調べて、Web サービス用の対話型ターミナルを用意したいと考えています。どうすればこれを達成できますか?
私の docker-compose 構成は次のとおりです。
ここで、Web サービスは をmhart/alpine-node:6.7.0
ベースとして使用し、さらにいくつかのユーティリティと Python3.5 および Flask を追加します。
実行docker-compose run web
すると、インタラクティブ ターミナルにアクセスできますが、db および nginx サービスが適切に起動/リンクされません。次の出力が得られます。
そして、コンテナ内からのさらなるネットワーク フォレンジックにより、nginx も db も存在しないことが判明しました。docker-compose up
ホストシステムにmysqlがインストールされていることを認められたdbサービスのポート競合が実際に作成されたため、この主張をさらにサポートできdocker-compose run
ます.
一方、試してみるとdocker-compose up
、はるかにアクティブなトレースが得られますが、インタラクティブなターミナルは得られません:
対話型ターミナルと 3 つのコンテナーの適切なリンクを実現するにはどうすればよいですか?
docker - コンテナーを開始できません: [8] システム エラー: exec: "up3": 実行可能ファイルが $PATH に見つかりません
私はスタック オーバーフローを初めて使用し、スタック オーバーフローで同様の問題を確認しましたが、期待した答えが見つかりませんでした。私の質問がばかげていないことを願っています。コンテナーを作成した後、コンテナーを開始できません。次のコマンドを使用するdocker start 6069dba3cb02
と、次のエラー メッセージが表示されます。
コンテナー情報は次のとおりです。
docker restart 6069dba3cb02
" " または " "という別のコマンドを使用してもdocker run ubuntu:14.04 up3
、まだエラーが発生します。
Docker 情報: オペレーティング システム: Boot2Docker 1.8.0 (TCL 6.3); インストール パス: https://github.com/boot2docker/windows-installer/releases
bash - Docker コンテナ A から (Docker コンテナ B で) Bash スクリプトを実行する
Docker Compose ファイルを使用して構成された 2 つの Docker コンテナーがあります。
- Docker コンテナ A - (teamcity-agent)
- Docker コンテナー B - (ビルドツール)
どちらも問題なく起動します。しかし、TeamCity のビルド プロセスの一環として、エージェント (コンテナー A) が Docker コンテナー B にある bash スクリプトを実行することを希望します (このスクリプトを実行できるのは B のみです)。
Team City で SSH ビルド ステップを使用してこれをセットアップしようとしましたが、接続が拒否されました。
それをさらに読むと、コンテナーで SSH が有効になっておらず、実際にコンテナーに SSH で接続しようとするべきではないことがわかります。
では、コンテナ A にコンテナ B でスクリプトを実行させ、A でスクリプトの出力を確認するにはどうすればよいでしょうか?
これのベストプラクティスは何ですか?
docker - ポートはすべての docker ネットワークで共通ではありませんか?
2 つの docker ネットワークを作成しました
チャンネルネットワーク
/li>内部ネットワーク
/li>
dockerコンテナーを作成する際に、 chnetwork を使用します。
後でInternal-networkに変更し、コンテナをchnetworkから切断しました
問題はdocker psコマンドがそのコンテナーのポートを表示しないことです。つまり、 internal-networkでポートにアクセスできないということです。
ネットワークをchnetworkに変更すると、その時間はdocker psディスプレイポートのみになります。すべての docker ネットワークでポートにアクセスできるようにするには、どうすればよいですか?
docker - 自動的にクラッシュする Docker コンテナを再起動する
コンテナが自動的にクラッシュした場合にコンテナを再起動したい。これを行う方法がわかりません。Elasticsearch、redis、nats、および mongo を含むスクリプト docker-compose-deps.yml があります。ターミナルでこれを実行して、これをセットアップします: docker-compose -f docker-compose-deps.yml up -d
. この後、以下を実行してコンテナをセットアップしましたdocker-compose up -d
。これらのコンテナがクラッシュした場合に再起動する方法はありますか? docker には再起動機能が組み込まれていることに気付きましたが、これを実装する方法がわかりません。
いくつかのフィードバックの後、私は自分のファイルと自分のファイルに追加restart: always
しdocker-compose
ましたdocker-compose-deps.yml
。これは正しく見えますか?それとも、これは常に再起動を実装する方法ですか?
docker-compose サンプル
docker-compose-deps.yml サンプル