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
来运行多个服务。 在下面阅读更多关于相同的细节