将networking服务器容器连接到MySQL容器

我正在学习docker,我创build了一个持久数据库使用卷的MySQL容器,我想在docker-compose up --build过程中从Web容器连接到MySQL容器。

问题是在此期间连接总是失败。 一切完成后,我只能访问MySQL容器。

下面的build/web-server/docker-compose.yml文件中的RUN mysql -uroot -pmy-root-password -hdatabase总是失败。

我怎样才能做到这一点?

泊坞窗,compose.yml

 version: '3' services: database: container_name: kadu-database build: context: build/database dockerfile: Dockerfile web-server: container_name: kadu-web-server links: - database depends_on: - database build: context: build/web-server dockerfile: Dockerfile 

build/数据库/泊坞窗,compose.yml

 FROM mariadb:5.5 ARG MYSQL_DATABASE ARG MYSQL_ROOT_PASSWORD RUN apt-get update RUN apt-get install patch --assume-yes 

build设/ Web服务器/泊坞窗,compose.yml

 FROM ubuntu:16.04 ARG WEB_USERNAME ARG MYSQL_DATABASE ARG MYSQL_ROOT_PASSWORD RUN apt-get update --quiet=2 && apt-get install mariadb-client --quiet=2 RUN mysql -uroot -pmy-root-password -hdatabase 

使用docker包括两个步骤:

  • build立一个形象
  • 根据图像创build容器并运行该容器

关键是你的mysql client 只能在第二步连接到服务器。

Dockerfile “执行”,而你build立的形象。 在这个时候你没有任何容器,所以你不能连接到它们。 您需要将RUN mysql -uroot -pmy-root-password -hdatabase Dockerfile移至entrypoint.sh