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

时间:2021-02-11 17:41:30

标签: mysql docker nginx dockerfile linux-containers

我想在同一个镜像中安装 nginx 和 mysql。我从一个 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

1 个答案:

答案 0 :(得分:0)

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