docker把代码构建成镜像

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系统架构的镜像

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值