从收件人容器访问源容器

我有一个使用docker文件创build的mysql容器

from ubuntu:14.04 run apt-get update && apt-get install -y apt-transport-https run apt-get install mysql-server -y run apt-get install mysql-client -y RUN apt-get update RUN apt-get install software-properties-common -y RUN add-apt-repository ppa:webupd8team/java -y RUN apt-get update RUN echo debconf shared/accepted-oracle-license-v1-1 select true | debconf-set-selections RUN apt-get install oracle-java7-installer -y && \ oracle-java7-set-default RUN sed -i -e"s/^bind-address\s*=\s*127.0.0.1/bind-address = 0.0.0.0/" /etc/mysql/my.cnf env set MYSQL_ROOT_PASSWORD=root EXPOSE 3306 

以及来自java:8映像的java容器。 java容器使用–link选项链接到mysql容器。

 docker run -it --link mysqlc:csql java:8 

现在我需要从java容器执行mysql命令,但mysql命令不能在java容器中工作。 问题是什么?

我需要启动MySQL,从Java容器创build数据库? 这个怎么做? 我需要使用其他图像而不是Java来访问MySQL容器?

一种方法是构build自己的Java图像,只要Java包含mysql-client:

Dockerfile:

 FROM Java:8 RUN apt-get update && apt-get install mysql-client 

build立:

 docker build . -t my-java-mysql 

跑:

 docker run -it --link mysqlc:csql my-java-mysql:8 

然后你的Java容器中有mysql客户端命令可用。