タグ付けされた質問 「docker-compose」

Composeは、Dockerで複雑なアプリケーションを定義して実行するためのツールです。Composeを使用すると、マルチコンテナアプリケーションを単一のファイルで定義し、アプリケーションを実行するために必要なすべてのことを実行する単一のコマンドでアプリケーションを起動します。

9
Docker-mysql接続の準備ができているかどうかのcomposeチェック
dbコンテナーが開始され、接続を受け入れる準備ができるまで、アプリコンテナーが移行/開始を実行しないようにしようとしています。 そこで、ヘルスチェックを使用することにし、dockercomposeファイルv2のオプションに依存します。 アプリでは、私は以下を持っています app: ... depends_on: db: condition: service_healthy 一方、dbには次のヘルスチェックがあります db: ... healthcheck: test: TEST_GOES_HERE timeout: 20s retries: 10 私は次のようないくつかのアプローチを試しました: dbDIRが作成されていることを確認する test: ["CMD", "test -f var/lib/mysql/db"] mysqlバージョンの取得: test: ["CMD", "echo 'SELECT version();'| mysql"] 管理者にpingを実行します(dbコンテナーを正常としてマークしますが、有効なテストではないようです) test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"] 誰かがこれに対する解決策を持っていますか?

5
Docker-イメージオペレーティングシステム「windows」はこのプラットフォームでは使用できません
私は自分のWindows10マシンでこれを試しました: Dockerfile: From microsoft/nanoserver CMD ["echo", "Hello World"] PS C:\FSD\Docker\Trial1> docker build -t lea/leatest . Sending build context to Docker daemon 2.048kB Step 1/2 : FROM microsoft/nanoserver latest: Pulling from microsoft/nanoserver bce2fbc256ea: Pulling fs layer 58f68fa0ceda: Pulling fs layer image operating system "windows" cannot be used on this platform

2
Dockerで1つのコンテナーのロギングを無効にする-作成
Dockerコンポーズを使用して起動したWebアプリケーションで、すべてのログを無効にしたい(または、少なくともファイルではなくsyslogに出力したい)。 私のウェブアプリケーションが動作すると、起動時に11GBのログファイルをすばやく生成できるため、ディスク容量を非常に速く消費します。 通常のDockerには実行コマンドのログオプションがあることは知っていますが、DockerComposeでは Docker-構成する アプリケーションフォルダにあるアプリケーションを起動します。私の場合、この機能をどのように有効にしますか?オンラインのどこにも特定のケースは見られません。

21
Dockerエラー:無効な参照形式:リポジトリ名は小文字である必要があります
私のプロジェクトの1つでこのDockerエラーに遭遇しました: invalid reference format: repository name must be lowercase この一般的なメッセージのさまざまな原因は何ですか? 私はいくつかの努力の後でそれをすでに理解しました、それで私はそれをここに文書化するために私自身の質問に答えるつもりです。 Dockerが遭遇する直接の問題。


8
「./docker-compose.yml」のバージョンはサポートされていません。間違った作成ファイルバージョンを使用しているため、このエラーが表示される場合があります
これが私のdocker-compose.ymlファイルです: version: '3.1' services: a: image: tutum/hello-world b: image: tutum/hello-world secrets: id: my_password 私が実行する$ docker-compose-upと、これが得られます: 「./docker-compose.yml」のバージョンはサポートされていません。間違った作成ファイルバージョンを使用しているため、このエラーが表示される場合があります。 私のdocker-composeバージョン: $ docker-compose --version docker-compose version 1.11.0, build 6de1806 ここで何が問題になっていますか?私のdocker-composeバージョンはdocker-compose.yml仕様のv3.1をサポートするべきではありません(リリースノートによると、サポートしています)?

4
E:パッケージ 'mysql-client'には、dockercomposeを使用したphp-fpmイメージビルドにインストール候補がありません
Dockerはかなり新しいので、laravelプロジェクトを使用して詳細を学習しようとしています。このチュートリアルに従ってください。 https://www.digitalocean.com/community/tutorials/how-to-set-up-laravel-nginx-and-mysql-with-docker-compose?comment=77842 Dockerfileをチュートリアルの内容から少し調整しましたが、チュートリアルファイルでも同じ結果になります。 FROM php:7.3-fpm # Copy composer.lock and composer.json COPY composer.lock composer.json /var/www/ # Install dependencies RUN curl -sL https://deb.nodesource.com/setup_10.x | bash - && \ apt-get update && apt-get install -y mysql-client \ RUN npm install -g npm # Clear cache RUN apt-get clean && rm -rf /var/lib/apt/lists/* # …

10
docker-composeを取得してリポジトリから最新のイメージを使用する方法
何が間違っているのかわかりませんが、docker-compose up最初にシステムから古いコンテナを完全に削除しないと、レジストリから最新のイメージを使用できません。docker-compose pullが新しいイメージをフェッチしたにもかかわらず、composeは以前に開始されたイメージを使用しているようです。 私が見て、常に新鮮なイメージから容器を再作成するために、ドッキングウィンドウ-コンを取得する方法?これは私の問題に似ているように見えましたが、本番サーバーで使用できるソリューションを探していて、開始する前にすべてのコンテナーを削除したくないため、提供されているソリューションはどれも機能しません。再び(データ損失の可能性?)。変更されたイメージの新しいバージョンを検出し、それらをプルしてから、それらの新しいイメージでサービスを再起動するためだけに、composeを作成したいと思います。 このための簡単なテストプロジェクトを作成しました。このプロジェクトでは、新しいビルドごとにバージョンnrを増やすことが唯一の目標です。作成されたnginxサーバーを参照すると、バージョンnrが表示されます(これはローカルで期待どおりに機能します)。 dockerバージョン:1.11.2 docker-composeバージョン:1.7.1 OS:docker-toolboxを使用してCentOS7とOSX10.10の両方でテスト済み 私のdocker-compose.yml: version: '2' services: application: image: ourprivate.docker.reg:5000/ourcompany/buildchaintest:0.1.8-dev volumes: - /var/www/html tty: true nginx: build: nginx ports: - "80:80" volumes_from: - application volumes: - ./logs/nginx/:/var/log/nginx php: container_name: buildchaintest_php_1 build: php-fpm expose: - "9000" volumes_from: - application volumes: - ./logs/php-fpm/:/var/www/logs jenkinsサーバーで次のコマンドを実行してイメージをビルドしてタグ付けします cd $WORKSPACE && …

9
docker-compose with CIの使用-終了コードとデーモン化されたリンクされたコンテナーを処理する方法は?
現在、JenkinsエージェントはRailsプロジェクトごとにdocker-compose.ymlを生成してから、docker-composeupを実行します。docker-compose.ymlには、rbenvと他のすべてのRails依存関係を内部に持つメインの「web」コンテナーがあります。これは、テストPostgresDBを含むDBコンテナーにリンクされています。 問題は、実際にテストを実行して終了コードを生成する必要がある場合に発生します。CIサーバーは、テストスクリプトがexit 0を返した場合にのみデプロイされますが、docker-composeは、コンテナーコマンドの1つが失敗した場合でも、常に0を返します。 もう1つの問題は、Webコンテナーがテストの実行を完了した後でも、DBコンテナーが無期限に実行されるため、docker-compose up戻らないことです。 このプロセスにdocker-composeを使用する方法はありますか?コンテナを実行できる必要がありますが、Webコンテナが完了したら終了し、その終了コードを返します。現在、dockerを使用して手動でスタックし、DBコンテナーを起動し、-linkオプションを指定してWebコンテナーを実行しています。

7
起動時にMongoDBコンテナ用のDBを作成するにはどうすればよいですか?
私はDockerを使用しており、PHP、MySQL、Apache、Redisのスタックがあります。今すぐMongoDBを追加する必要があるため、Dockerfileで最新バージョンとMongoDB Dockerhubのdocker-entrypoint.shファイルを確認していましたが、デフォルトのDB、管理者ユーザー/パスワード、場合によっては認証を設定する方法が見つかりませんでした。docker-compose.ymlファイルからのコンテナのメソッド。 MySQLでは、たとえば次のようにいくつかのENV変数を設定できます。 db: image: mysql:5.7 env_file: .env environment: MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} MYSQL_DATABASE: ${MYSQL_DATABASE} MYSQL_USER: ${MYSQL_USER} MYSQL_PASSWORD: ${MYSQL_PASSWORD} これにより、DBとユーザー/パスワードがパスワードとして設定されrootます。 MongoDBで同じことを達成する方法はありますか?誰かが何らかの経験や回避策を持っていますか?

12
Dockerマシンにローカルボリュームをマウントする方法
docker-composeでdocker-machineを使用しようとしています。docker-compose.ymlファイルの定義は次のとおりです。 web: build: . command: ./run_web.sh volumes: - .:/app ports: - "8000:8000" links: - db:db - rabbitmq:rabbit - redis:redis 実行している場合はdocker-compose up -d、すべてのコマンドを実行しようとまではうまくいくと、エラーが生成されます。 コンテナを起動できませんb58e2dfa503b696417c1c3f49e2714086d4e9999bd71915a53502cb6ef43936d:[8]システムエラー:exec: "./run_web.sh":stat ./run_web.sh:そのようなファイルまたはディレクトリはありません ローカルボリュームはリモートマシンにマウントされていません。webappsのコードを使用してローカルボリュームをマウントするための推奨戦略は何ですか?

3
Docker-Composeを使用する場合とDocker-Swarmを使用する場合
Docker-ComposeとDocker-Swarmの違いや類似点を理解しようとしています。 ドキュメントを読むことで、docker-composeは、異なるコンテナーをバインドし、単一のサービスとして共同で動作するメカニズムを提供することを理解しました(2つのコンテナーをリンクするために使用される--linkコマンドと同じ機能を使用していると思います) また、docker-swarmについての私の理解は、それぞれがいくつかのdocker-imagesの複数のコンテナーインスタンスを実行している異なるdocker-hostsのクラスターを管理できることです。接続を、スウォーム内の異なるコンテナー間のオーバーレイネットワークとして定義し(スウォーム内の2つのDockerホストにまたがる場合でも)、それらを1つのユニットとして接続できます。 私が理解しようとしているのは、docker-swarmがdocker-composeに成功し、オーバーレイネットワークがコンテナーを接続するための新しい(推奨される)方法であるということです。 それとも、docker-composeはまだdockerファミリー全体の不可欠な部分であり、それを使用してコンテナーを接続して共同作業を行うことが期待され、推奨されています。もしそうなら、docker-composeは群れの異なるノードにまたがるコンテナで動作しますか? それとも、オーバーレイネットワークは群れの異なるホスト間でコンテナを接続するためのものであり、docker-composeは内部リンクを作成するためのものですか? さらに、dockerのドキュメントに、-linksは推奨されなくなり、まもなく廃止されることが記載されていることもわかりました。 私は少し混乱していますか? どうもありがとう!


3
docker-compose.ymlで名前付きボリュームのホストにパスを設定する方法
以下の例では、volumeという名前のdbdataを作成し、dbサービス内で参照しています。 version: '2' services: db: image: mysql volumes: - dbdata:/var/lib/mysql volumes: dbdata: driver: local (https://stackoverflow.com/a/35675553/4291814から) ボリュームのデフォルトのパスは次のとおりです。 /var/lib/docker/volumes/<project_name>_dbdata 私の質問は、dbdataボリュームのホスト上のパスを構成する方法ですか?

4
Traefik 2.0およびDocker Composeラベルを使用してhttpをhttpsにリダイレクトする方法
これはTraefik V2の質問です。V1で解決策がありましたが、V2は完全な手直しです。 上記は、http ://whoami.mysite.com をhttp s://whoami.mysite.com にリダイレクトすることを想定しています。 HTTP sがうまく働いています。 httpはhttpsにリダイレクトせず、エラー404を発生させます。 他のファイルはありません。現時点では、このDocker-compose.ymlにすべてが含まれています。これは、さらにデプロイを準備するためのテストであるためです。 version: "3.3" services: traefik: image: "traefik:v2.0" container_name: "traefik" command: - "--log.level=DEBUG" - "--api.insecure=true" - "--providers.docker=true" - "--providers.docker.exposedbydefault=false" - "--entrypoints.web.address=:80" - "--entrypoints.web-secure.address=:443" - "--certificatesresolvers.myhttpchallenge.acme.httpchallenge=true" - "--certificatesresolvers.myhttpchallenge.acme.httpchallenge.entrypoint=web-secure" #- "--certificatesresolvers.myhttpchallenge.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory" - "--certificatesresolvers.myhttpchallenge.acme.email=me@mail.com" - "--certificatesresolvers.myhttpchallenge.acme.storage=/letsencrypt/acme.json" labels: - "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https" ports: - "80:80" - "443:443" …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.