Docker,通过dockerfile导入mysql会导致mysql命令找不到

我有几个自定义docker图像即

cloudbluedigital/mysql:v-0.1 cloudbluedigital/redis:v-0.1 

我现在正在使用这些图像来构buildlaravel图像,所以在我的docker文件中我有:

 FROM cloudbluedigital/ubuntu:v-0.2 FROM cloudbluedigital/php:v-0.2 FROM cloudbluedigital/node:v-0.1 FROM cloudbluedigital/mysql:v-0.1 FROM cloudbluedigital/redis:v-0.1 MAINTAINER cloudbluedigital version: 0.1 

所有的好和builded,但是当我运行我的新laravel图像,我可以从redis映像启动redis-server但是没有findmysql命令,我检查了mysql映像,它安装在那里,但在我的新的laravel图像没有安装。 任何人都知道这是为什么发生? 这是一个正确的设置,值得忽略一些额外的configuration文件夹? (我只使用Dockerfile,完成新手)

您正在使用多阶段构buildDockerfile。 所以你的Dockerfile

 FROM cloudbluedigital/ubuntu:v-0.2 FROM cloudbluedigital/php:v-0.2 FROM cloudbluedigital/node:v-0.1 FROM cloudbluedigital/mysql:v-0.1 FROM cloudbluedigital/redis:v-0.1 MAINTAINER cloudbluedigital version: 0.1 

其实相当于

 FROM cloudbluedigital/redis:v-0.1 MAINTAINER cloudbluedigital version: 0.1 

指定多个FROM仅用于在最后的FROM构build工件和复制。 请阅读下面的更多细节

https://docs.docker.com/engine/userguide/eng-image/multistage-build/

您需要使用docker-compose来运行多个服务。 在下面阅读更多关于相同的细节

https://docs.docker.com/compose/compose-file/