Docker是一款开源的容器化平台,它允许开发者把应用程序和它们依赖的环境(库、工具)打包到一个轻量级的、可移植的容器中,从而方便部署和运行。本文将介绍如何使用命令行工具make构建Docker镜像。
// Dockerfile示例 FROM node:10.16.0-alpine WORKDIR /app COPY package*.json ./ RUN npm install COPY . . EXPOSE 8080 CMD ["npm", "start"]
要构建Docker镜像,我们需要创建一个Dockerfile文件,其中包含指令和参数,指示Docker如何构建镜像。以Node.js项目为例,以下是Dockerfile的示例代码:
上述Dockerfile的意思是:使用alpine版的Node.js作为基础镜像,在/app目录下安装Node.js依赖包,将项目源代码复制到/app目录下,并指定容器对外暴露的端口为8080,并设置容器启动时执行的命令为npm start。
接下来,我们使用make命令编写构建Docker镜像的脚本:
# Makefile示例 TAG = myapp CONTAINER_NAME = myapp_container build: @docker build -t $(TAG) . run: @docker run -p 8080:8080 -d --name $(CONTAINER_NAME) $(TAG) stop: @docker stop $(CONTAINER_NAME); docker rm $(CONTAINER_NAME)
在上述Makefile中,我们定义了TAG和CONTAINER_NAME变量,分别表示镜像名称和容器名称。build命令使用docker build命令构建镜像,其中-t参数指定镜像名称为$(TAG),‘.’表示当前文件夹为构建上下文。run命令使用docker run命令启动容器,参数-p指定端口映射,-d表示后台运行,–name表示容器名称为$(CONTAINER_NAME)。stop命令停止并删除容器。
到此为止,我们已经完成了构建Docker镜像的过程,并通过make命令定义的脚本启动了容器。通过Docker,我们可以方便地部署和管理应用程序,大大降低了应用程序的运维成本。