Dockerfile 在同一个镜像中安装 Nginx 和 MySQL

问题描述

我想在同一个镜像中安装 NginxMysqL。我从一个 MysqL 映像开始,计划使用 dockerfile 安装 docker。 这是我的 dockerfile:

FROM MysqL:latest
ENV MysqL_ROOT_PASSWORD=HelloWorld \
    MysqL_DATABASE=content
RUN apt update
RUN apt install Nginx -y
copY Nginx.conf /etc/Nginx/Nginx.conf

这完美地启动了 MysqL db,并且 Nginx 也被安装了。不幸的是,Nginx 没有启动。为了启动 Nginx,我还在 docker 文件添加了另一个命令:

CMD service Nginx start

在dockerfile中添加这一行后,容器在创建后关闭。我在这里做错了什么? 我正在使用下面的命令来启动带有上面图像的容器:

docker run -it -p 3306:3306 -p 8080:80 -p 8081:443 --name mycontainer myimage

解决方法

最好在单独的容器中运行每个进程。但是如果你想这样做,你应该创建一个 bash 文件来启动 MySQL 和 Nginx。最后,您应该使用该 bash 文件作为图像/容器的 ENTRYPOINT