Docker 镜像创建

Docker 镜像创建

我想创建自己的泊坞窗图像。我使用 Dockerfile 创建它,并且只想运行 httpd 服务器和 mysql 客户端。下面可以看到我的编辑文件。我的 Dockerfile 是否正确?

# Dockerfile that modifies oraclelinux:6.6 to include an Apache HTTP server
FROM ubuntu:14.04

RUN apt-get -y install apache2

RUN echo "HTTP server running on guest" > /var/www/html/index.html

EXPOSE 80

RUN apt-get -y install mysql-client

EXPOSE 3306

答案1

不,这是不正确的,因为您应该在最后运行 CMD。

您还应该包括一些最佳实践,以创建更少的中间容器快照和更小的输出:

  • 你不应该运行apt-get多次
  • 你应该apt-get update在跑步之前跑步apt-get install
  • 你应该在跑步后清理干净apt-get install
  • 你应该包括一名维护者

尝试类似的方法:

# Dockerfile that modifies oraclelinux:6.6 to include an Apache HTTP server
FROM ubuntu:14.04

MAINTAINER Supun Rathnayake

RUN apt-get update && apt-get install -y \
  apache2 \
  mysql-client \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*

RUN echo "HTTP server running on guest" > /var/www/html/index.html

EXPOSE 80

EXPOSE 3306

CMD ["your command to run apache"]

您可能应该查看 docker-hub 中的 apache2 项目,该项目有大量下载并分析其 Dockerfile,这非常有启发性。

原则上,您可以在同一个容器中运行 mysql 客户端,但这可能需要一些调度程序来启动 apache 和 mysql 守护进程。或者,您应该考虑将 mysql 放在其他地方(或者使用 Dockerhub 中的标准容器之一并将它们链接到您的容器)。

相关内容