Docker-compose + external container

I launched the docker container with the following command

docker run --name mysql --restart always -p 3306:3306 -v /var/lib/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=password -d mysql:5.7.14

and then I would like to connect a wordpress site with the following docker-compose.yml file

version: '2'

services:
    wordpress:
        image: wordpress
        external_links:
            - mysql:mysql
        ports:
            - 80:80
    environment:
        WORDPRESS_DB_USER: root
        WORDPRESS_DB_PASSWORD: password
    volumes:
        - /var/www/somesite.com:/var/www/html

But I keep getting the following error:

Starting somesitecom_wordpress_1
Attaching to somesitecom_wordpress_1
wordpress_1  | 
wordpress_1  | Warning: mysqli::mysqli(): (HY000/2002): Connection refused in - on line 19
wordpress_1  | 
wordpress_1  | MySQL Connection Error: (2002) Connection refused

It external_linksdoesn't seem to work.

Any idea what I'm doing wrong?

+4
source share
1 answer

Your link works, but you are on different networks inside Docker. From docker-compose.yml docs :

Note. If you are using version 2 file format, containers created externally must be connected to at least one of the networks that are associated with them.

To solve this problem, you can create your own network:

docker network create dbnet
docker network connect dbnet mysql

docker-compose.yml

version: '2'

networks:
  dbnet:
    external:
      name: dbnet

services:
    wordpress:
        image: wordpress
        ports:
            - 80:80
        environment:
            WORDPRESS_DB_USER: root
            WORDPRESS_DB_PASSWORD: password
        volumes:
            - /var/www/somesite.com:/var/www/html
        networks:
          - dbnet

, Docker , DNS .

+13

Source: https://habr.com/ru/post/1651953/


All Articles