将mysql客户端容器连接到mysql服务器容器Docker

时间:2016-03-21 12:05:17

标签: docker

我有两个容器

第一个有mysql服务器

mysql服务器的Docker文件

FROM ubuntu:14.04

RUN apt-get -y install mysql-server

RUN service mysql start &&  \
    sleep 5s && \
    mysql -e "GRANT ALL ON *.* to 'root'@'%'; FLUSH PRIVILEGES" 

EXPOSE 3306

CMD ["/usr/bin/mysqld_safe"]

mysql-client的第二个容器< / p>

FROM ubuntu:14.04

RUN apt-get -y install mysql-client

现在我运行第一个容器

docker run -t -i --name mysql 945bd6cace51

现在第二个容器

docker run -t -i --link mysql:mysqla 5e6d401ee4c8

使用--link连接mysql客户端容器到mysql服务器容器

现在在mysql客户端容器中我正在使用这个命令

mysql -h $ MYSQL_PORT_3306_TCP_ADDR

但它不起作用它显示我此错误

  

mysql:选项'-h'需要参数

我做错了什么?

1 个答案:

答案 0 :(得分:0)

如果使用docker-compose.yml文件,这很好

version: "3.0"

services:
  web:
    build:
      context: ../
      dockerfile: docker/Dockerfile
    links:
      - db
    ports:
      - "8011:80"
    volumes:
      - ../:/var/www
      - ../docker/apache2/sites-available:/etc/apache2/sites-available/
      - ../docker/apache2/sites-enabled:/etc/apache2/sites-enabled/
      - ../docker/db:/root/
    container_name: web

  db:
    image: mysql:5.7.22
    environment:
      - MYSQL_ROOT_PASSWORD=password
      - MYSQL_DATABASE=root
    volumes:
      - ../docker/db:/var/lib/mysql

我们这里有links:键,用于将mysql服务器连接到任何其他容器。