访问源容器从接收容器

访问源容器从接收容器

问题描述:

我有一个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的容器从Java:8的图像。 java容器使用--link选项链接到mysql容器。

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

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

我需要启动mysql,从java容器创建数据库?这个怎么做? 我是否需要使用java以外的其他图像来访问mysql容器?

+0

您应该对RUN命令进行分组,以避免多层,与apt-get update具有更好的一致性,因此请参阅https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-做法/和我没有看到你的Dockerfile中的任何'CMD'或'ENTRYPOINT',所以我很惊讶 – user2915097

的一种方法是建立自己的Java形象,只要包含MySQL的客户端如Java:

Dockerfile:

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

体形:

docker build . -t my-java-mysql 

运行:

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

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