2015-12-03 7 views
5

を拒否しました。それは次のようになります。ドッキングウィンドウ-構成ワードプレスMySQLの接続は、私は小さなWordPressのインスタンスを配置するために魔法のように動作するために使用される小型の<code>docker-compose.yml</code>を作成しました

wordpress: 
    image: wordpress:latest 
    links: 
    - mysql 
    ports: 
    - "1234:80" 
    environment: 
    WORDPRESS_DB_USER: wordpress 
    WORDPRESS_DB_NAME: wordpress 
    WORDPRESS_DB_PASSWORD: "password" 
    WORDPRESS_DB_HOST: mariadb 
    MYSQL_PORT_3306_TCP: 3306 
    volumes: 
    - /srv/wordpress/:/var/www/html/ 
mysql: 
    image: mariadb:latest 
    mem_limit: 256m 
    container_name: mariadb 
    environment: 
    MYSQL_ROOT_PASSWORD: "password" 
    MYSQL_DATABASE: wordpress 
    MYSQL_USER: wordpress 
    MYSQL_PASSWORD: "password" 
    volumes: 
    - /srv/mariadb:/var/lib/mysql 

しかし、私は(多分ドッカーバージョン1.9.1へのドッキングウィンドウの更新以降、a34a1d5を構築する)今、それを起動したとき、それはwordpress_1

wordpress_1 | Warning: mysqli::mysqli(): (HY000/2002): Connection refused in - on line 10 
wordpress_1 | 
wordpress_1 | MySQL Connection Error: (2002) Connection refused 

とき、私は猫/etc/hostsに失敗しますMySQL用のエントリがあります:

172.17.0.10 mysql 12a564fdbc56 mariadb 

私はMariaDBサーバにpingすることができます。

I docker-compose upは、ワードプレスがインストールされると、いくつかの再起動後MariaDBコンテナプリント:

Version: '10.0.22-MariaDB-1~jessie' socket: '/var/run/mysqld/mysqld.sock' port: 3306 mariadb.org binary distribution 

schouldそれは、それが実行されていないことを示しますか?

WordPressでMariaDBコンテナに接続できるようにするにはどうすればよいですか?

+1

あなたのmysqlコンテナは3306を公開しているポートですか?環境変数MYSQL_PORT_3306_TCP_PORTはありますか? – Michael

+0

あなたの答えをありがとう。あなたが開始されたmariadb dockerメッセージ(右にスクロール)で見ることができるように、3306で実行されています...まだ、このセットアップがもう機能していない理由がわかりません。 – Harry

+0

それはコンテナの中にあります、ドッカーのコンテナで:ドッカーのポート Michael

答えて

2

この現象の原因は、最近のカーネルとドッカーの更新に関連している可能性があります。私は、他のドッカーの作成設定でいくつかの他の接続の問題を改訂しました。したがって、私はサーバー(ドッカーサービスだけでなく)を再起動して以来、このような問題は発生していませんでした。

+0

ええドッカーデーモンを再起動しました – lisak

+0

ドッカーデーモンを再起動してもこれが修正されません。 –

0

私はあなたのdocker-compose.ymlを使っていましたが、同じ問題がありました。再起動しても修正されませんでした。ログを調べる時間が1時間近く経過した後、問題が見つかった:wordpressサービスが開始されてから、サービスが開始される前にmysqlサービスに接続が開始されました。 depends_onを追加するだけでは役に立ちません。 Docker Compose wait for container X before starting Y

回避すると、Upの前にdbサーバーが起動する可能性があります。完全に起動したら、docker-compose upを実行します。または単に外部サービスを使用してください。

+0

あなたは 'depends_on:database'をwordpressサービスで使うことができますが、それでも私にとってはうまくいきません –

0

この問題を解決するにはまず最初に行うには、次のとおりです。

は(ドッカ-COMPOSEファイル内)ワードプレス&データベースコンテナに次のコードを追加します。

restart: unless-stopped 

これはあなたのデータベースを確認します開始され、wordpressコンテナに接続しようとする前に初期化されます。私も持っていた

version: '2' 

services: 
    wordpress: 
    image: wordpress:latest 
    links: 
     - database:mariadb 
    environment: 
     - WORDPRESS_DB_USER=wordpress 
     - WORDPRESS_DB_NAME=mydbname 
     - WORDPRESS_TABLE_PREFIX=ab_ 
     - WORDPRESS_DB_PASSWORD=password 
     - WORDPRESS_DB_HOST=mariadb 
     - MYSQL_PORT_3306_TCP=3306 
    restart: unless-stopped 
    ports: 
     - "test.dev:80:80" 
    working_dir: /var/www/html 
    volumes: 
    - ./wordpress/:/var/www/html/ 
    database: 
    image: mariadb:latest 
    environment: 
    - MYSQL_ROOT_PASSWORD=password 
    - MYSQL_DATABASE=mydbname 
    - MYSQL_USER=wordpress 
    - MYSQL_PASSWORD=password 
    restart: unless-stopped 
    ports: 
    - "3306:3306" 
0

:次にドッカエンジン

sudo restart docker 

または(Ubuntuのための15+)ここで

sudo service docker restart 

セットアップに私のために働いた完全な設定は、MariaDBとワードプレスを再起動しますここのトラブル。私は、コントローラとしてphpmyadminjwilder/nginx-proxyを含む単一の(マイクロ)バーチャルプライベートサーバ上に複数のワードプレスのウェブサイトを設定するためにドッカーの作成を使用していました。

$ docker logs XXXXは、気になる部分を示すのに役立ちます。私の場合、MariaDBデータベースは常に再起動します。

すべてのことがマイクロ512MシングルCPUサービスに適合しないことが判明しました。サイズが問題だと私に直接伝えてきたエラーメッセージを受け取ったことはありませんでしたが、事を追加した後、すべてのデータベースが起動していたときにメモリが不足していました。 1Gbへのアップグレード、1CPUサービスは正常に機能しました。

関連する問題