Docker. Connect from one container to another container with mysql

I have a network:

docker network create -d bridge --subnet container_network

I have one container with mysql running. Run command:

  • Jenkins Docker throwing exception and starting offline
  • Docker Storage Volume
  • How to setup a Google Managed VMs Custom Runtime with App Engine service APIs
  • Selenium chrome crashes in jenkins slave
  • Getting “This application is already running”, but can't find RUNNING_PIT
  • How can I install python modules in a docker image?
  • docker run -tid -p 3306:3306 --name container_mysql --network container_network container_mysql

    And one container with code:

    docker run -tid -v $(pwd):/code -p 5000:5000 --name container_code --network container_network container_code

    I am trying to access mysql DB from my container with code, but nothing works:

    mysql -h -P 3306 -u root -p
    mysql -h container_mysql -P 3306 -u root -p
    mysql -h -P 3306 -u root -p
    mysql -h -P 3306 -u root -p

    First command gives me:

    ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0


    ERROR 2003 (HY000): Can't connect to MySQL server on <host> (111)

    Any ideas how to achieve the goal?

    Edit 1
    Dockerfile for Mysql container:

    FROM ubuntu:16.04
    RUN apt-get update
    RUN echo "mysql-server mysql-server/root_password password 1234" | debconf-set-selections
    RUN echo "mysql-server mysql-server/root_password_again password 1234" | debconf-set-selections
    RUN apt-get install mysql-server -y

  • How to link docker containers on build?
  • Docker - wordpress deployed on Digital Ocean Droplet - where is the wp-content?
  • Access Docker container running in Vagrant
  • Run PHPUnit by terminal with Docker
  • What is the best practice of docker + ufw under Ubuntu
  • Docker Networking - nginx: [emerg] host not found in upstream
  • One Solution collect form web for “Docker. Connect from one container to another container with mysql”

    First of all, you should consider to use networks insted of link. First, link should be deprecated very soon. Second, when you put 2 container on the same network, docker add to the /etc/hosts of both containers a line for resolve the IP from container name. This is for allows you to access to a container with their name. In your case you can access to the mysql container from code container like this

    mysql -h container_mysql

    Look this link for more details about docker networking. This link for more info about docker-compose and networking.

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.