docker把代码构建成镜像
基础概述
docker build命令通过 Dockerfile文件和上下文把项目代码构建成docker镜像。以下是它的工作原理:
1.Dockerfile:这是一个文本文件,包含 Docker 构建镜像所需的指令。它包括安装依赖项的命令、将文件复制到镜像中的命令、暴露端口的命令以及指定容器启动时应运行的命令。它是创建应用程序所需环境的一组指令。
2.上下文:当运行 “docker build” 命令时,Docker 会查找当前目录中名为 “Dockerfile” 的文件。它还包括当前目录中的任何其他文件和目录作为 “构建上下文”。这个上下文被发送到 Docker 守护程序,允许它访问构建镜像所需的文件。
3.构建镜像: “docker build” 命令读取 Dockerfile 并逐层执行其中的指令,以创建
Docker 镜像。Dockerfile 中的每个指令代表镜像中的一个层。Docker 缓存这些层,因此如果您没有对特定指令进行更改,Docker 将重用缓存的层而不是重新构建它,这可以显著加快后续的构建速度。
4.为镜像打标签:构建过程完成后,您可以选择使用 -t 标志为生成的镜像打标签,后面跟随名称和可选的标签。例如,docker build -t myapp:latest . 将使用名称为 “myapp” 和标签为 “latest” 的标签标记生成的镜像。
运行容器:镜像构建完成后,您可以使用 “docker run” 命令基于该镜像运行容器。
Dockerfile入门
FROM openjdk:8u141-slim
WORKDIR /home
COPY ./td-api-service/target/*.jar /home/app.jar
RUN echo "Asia/Shanghai" > /etc/timezone
EXPOSE 8099
ENTRYPOINT ["java","-jar","app.jar"]
- FROM openjdk:8u141-slim:拉取最简单的jdk作为父镜像
- WORKDIR /home:在镜像中选取/home作为工作目录
- COPY ./td-api-service/target/*.jar /home/app.jar:把项目jar复制到镜像,需要修改成你代码jar所在的路径(打包命令:mvn install -Dmaven.test.skip=true install:install)
- RUN echo “Asia/Shanghai” > /etc/timezone:打印时间信息
- EXPOSE 8099:暴露运行端口
- ENTRYPOINT:执行命令,运行jar
构建命令
需要在Dockerfile所在路径执行以下命令:
docker build [OPTIONS] PATH | URL | -
其中:
- OPTIONS 是用于自定义构建过程的各种标志。
- PATH 是包含 Dockerfile 和其他构建所需文件的目录路径。
- URL 是包含 Dockerfile 和其他文件的 Git 存储库的 URL。
- -可用于通过标准输入传递构建上下文。
普通构建
docker build -t <images_name:tag> .
注意:最后有个.,表示Dockerfile以及上下文路径
构建指定架构镜像
docker buildx build --platform linux/arm64 -t <images_name:tag> .
修改linux/amd64,linux/arm64参数可以分别构建amd和arm系统架构的镜像
5837

被折叠的 条评论
为什么被折叠?



