2016-04-28 41 views
1

私はドッカーハブからofficial MySQL imageを使用しており、ポート3333:3306を公開して外部から接続します。ドッカー内のmysqlに接続

私は私のようなユーザーのために、このコンテナや助成金の許可のIPに/etc/mysql/my.cnf内のバインドIPを変更する必要があることを知っている:私はすることによって、このコンテナに接続することができGRANT ALL PRIVILEGES ON * . * TO 'newuser'@'container_ip';

mysql -h container_ip -u root -p

しかし、私は、私はまた、別の容器でのWordPressから接続しようが、それは、接続を確立できない、

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

ところで、このエラーを受け取りました。ここでdocker-compose.yml

version: '2' 
services: 
    mysqldb: 
    image: mysql:5.6 
    environment: 
     MYSQL_ROOT_PASSWORD: password 
    volumes: 
     - ./mysql-data:/var/lib/mysql 
     - ./mysql-import-data:/import-data 
    ports: 
     - "3333:3306" 
    blog: 
    image: webdevops/php-nginx:ubuntu-14.04 
    environment: 
     WEB_DOCUMENT_ROOT: /usr/share/nginx/html 
    volumes: 
     - ./blog:/usr/share/nginx/html 
    ports: 
     - "8080:80" 
    depends_on: 
     - mysqldb 
  1. がある私は、このMySQLのコンテナで作った間違いは何ですか?私はそれに接続することはできません。
  2. コンテナのIPは毎回変更されることがありますdocker-compose up。どうすれば設定できますか?
+0

[警告:mysql \ _connect():ローカルMySQLサーバに接続できません](http://stackoverflow.com/questions/1005485/warning-mysql-connect-cant-connect-to-local) -mysql-server) –

答えて

0

私は少し混乱しています。ホストOSの観点から、ドッカーコンテナは1つまたは複数のネットワークインターフェイスにバインドされています。作成ファイルでは、ポート3333がホストに公開されています。それはあなたが接続しなければならないものです。

さらに、IPアドレスを使用する必要があります。そうしないと、mysqlクライアントはUNIXソケットに接続しようとします。

mysql -h 127.0.0.1 --port 3333 -u root -p 

ブログのコンテナから接続しようとしている場合は、3306ポートのホストとしてmysqldbを使用できます。