2017-01-18 21 views
1

私は簡単に再現可能なパターンに気がつきましたが、なぜ私の人生のためにそれが起こっているのか答えられません。何らかの理由で、私がdocker-compose kill(すべてのコンテナを強制終了する)コマンドを使用して、それを再度起動すると、docker-compose -d私のWebコンテナが無限ループして再起動します。私はこれについての答えのためにインターネットのいたるところを見て、何も見つけることができませんでした。ドッキング・コンテナを再起動する謎

何が起こっているかを確認するための手順を示したようなものです。

enter image description here

まったく同じように、ここで使用されている私の完全なドッキングウィンドウのセットアップのために私が作ったこのポスト(Docker-Compose won't volume my php.ini file)を参照してください、私はすぐに参照のためにここに私のドッキングウィンドウ・コンファイルを添付しますしてください。

ドッキングウィンドウ-compose.yml

version: '2' 
services: 
    dblive: 
     image: mysql:5.5.52 
     volumes: 
      - ./db_data_live:/var/lib/mysql 
     restart: always 
     environment: 
      MYSQL_ROOT_PASSWORD: **** 
      MYSQL_DATABASE: **** 
      MYSQL_USER: **** 
      MYSQL_PASSWORD: **** 

    dbdev: 
     image: mysql:5.5.52 
     volumes: 
      - ./db_data_dev:/var/lib/mysql 
     restart: always 
     environment: 
      MYSQL_ROOT_PASSWORD:**** 
      MYSQL_DATABASE: **** 
      MYSQL_USER: **** 
      MYSQL_PASSWORD: **** 

    phpmyadmin: 
     depends_on: 
      - dblive 
      - dbdev 
     image: phpmyadmin/phpmyadmin 
     environment: 
      PMA_ARBITRARY : 1 
     restart: always 
     ports: 
      - "8081:80" 

    web: 
     build: ./ 
     depends_on: 
      - dblive 
      - dbdev 
     volumes: 
      - ./web:/var/www 
      - ./config/custom.php.ini:/etc/php5/apache2/conf.d/custom.php.ini 
      - ./logs/apache_error.log:/var/log/apache2/error.log 
      - ./logs/apache_access.log:/var/log/apache2/access.log 
      - ./config/apache_default.conf:/etc/apache2/sites-enabled/000-default.conf 
     restart: always 
     ports: 
      - "80:80" 
      - "443:443" 

手順に沿って追跡する私の完全なセットアップを得るために、私のリンクポストhereを参照してください

  1. を再現します。
  2. 実行ドッカーの作成up -d。これにより、コンテナが起動します。
  3. 実行ドッカーpsこれらがすべて稼働していることを確認し、15秒間実行しています。 以上。
  4. 実行docker-compose killコンテナを停止します。 docker-compose up -dを実行してコンテナを再起動し、を5秒ごとにドッカーpsでフォローアップして、Webコンテナでの一貫した再起動を確認します。何度もkillして再起動しても、再起動は起こり続けます。
  5. 興味深いことに、docker-compose.yml ファイルの行をコメントアウトしてください。私の場合、php.iniファイルのボリュームをコメントアウトしました このように、#- ./config/custom.php.ini:/etc/php5/apache2/conf.d/custom.php.ini
  6. 実行ドッカーを作成してを再度停止してコンテナを再度停止してください。その後、を実行します。このとき、コンテナは再起動せずに魔法のように動作するでしょうか?-d

私の質問は、なぜわずかドッキングウィンドウ-compose.ymlファイルを変更し、それが今で動作するように原因起動ないのですか?この後に何らかの理由でコンテナを破棄し、を再起動しようとすると、docker-compose.ymlファイルに変更を加えずに、Webコンテナで再起動ループが発生します。なぜこれを行うのですか?

添付されている最初のイメージから以前の再起動後に動作するイメージを示しています。イメージでは無視してよろしくお願いしますERROR: yaml.scanner.ScannerError: MySQLパスワードをXX'してしまったのを忘れてしまったので、そこに何かを置いて幸せになれるようにしてください。エラーの後の内容は、突然再び働き始めることを示しています。

enter image description here

+1

再起動しているコンテナの 'docker logs'と' docker inspect'は何を表示していますか? – BMitch

+0

これらのコマンドの使い方の例を教えていただけますか?どの時点で私もコマンドを使用したいですか? (たとえば、再起動したとき、再起動した後など...) –

+0

また、最近私がドッキングを行うと、私は発見したことに気付きたい。私はドッカーの作成で起こる再起動の問題はないようだ。たぶん、私はちょうど殺すを使用するべきではない? –

答えて

1

答えはコンテナだけを殺すが、ドッキングウィンドウ-コンがになり、そのキャッシュをクリアしていないドッキングウィンドウ-構成殺すために実行ドッカ・コンキルを使用しますが、ドッキングウィンドウ-構成する代わりにダウンを使用しないことです君は。

+0

多くの時間を費やし、mysql/mariadbのさまざまなバージョンを使って試してみましたが、再起動していました...ドッカーを別々に使ってみましたが、正常に動作しましたが、ドッカーの作成はまったく機能しませんでした...他の誰かが同じことを行っている場合、これはうまくいった! –

関連する問題