学习优先级:★★★☆☆
易用性:★★★☆☆
Docker Compose 允许从 Dockerfile 自动创建服务,通过在配置中使用 build 选项。这在服务需要基于自定义镜像运行时非常实用。
在 docker-compose.yml 文件中指定 build,Docker Compose 可以使用 Dockerfile 创建自定义镜像并启动相应的服务。以下是一个从 Dockerfile 创建 Web 服务的简单示例。
示例代码
version: '3.8'
services:
web:
build: ./web
ports:
- "8080:80"
Dockerfile(位于 web 文件夹中)
# 使用 NGINX 基础镜像
FROM nginx:alpine
# 将本地的 index.html 文件复制到容器的网页根目录
COPY ./index.html /usr/share/nginx/html/index.html
index.html 文件内容
<!DOCTYPE html>
<html>
<head><title>Hello Docker Compose</title></head>
<body><h1>Hallo, das ist ein NGINX-Server!</h1></body>
</html>
执行结果
运行 Docker Compose 后,它会自动从 web 文件夹中的 Dockerfile 构建镜像,并启动 NGINX 服务器,该服务器可通过 localhost:8080 访问。index.html 文件被复制到容器中,并作为启动页面显示。
build 指令允许从 Dockerfile 创建自定义镜像。开发人员可以基于公开可用的基础镜像(如 NGINX、Node.js 等)创建和自定义自己的镜像。这是优化服务以适应特定应用程序的常见做法。
补充说明
自动构建镜像是 Docker Compose 的一项重要功能,尤其是对于使用 CI/CD 管道的团队。它确保所有开发人员使用相同的环境,并且可以轻松集成对基础应用程序或环境的更改。通过将文件复制到容器中,可以轻松地提供应用程序和配置。