【日常记录-Docker】RUN

Author:赵志乾
Date:2024-08-01
Declaration:All Right Reserved!!!

1. 简介

        RUN在Dockerfile中用于镜像的构建;其基本功能如下:

  • 构建镜像:RUN在Dockerfile中用于执行命令,并在当前镜像基础上创建一个新的镜像层。这些命令可以是安装软件包、复制文件或进行配置更改等操作;
  • 提交结果:执行完命令后,RUN会将结果提交为新的镜像层,该镜像层将用于Dockerfile中的后续步骤;

2. 工作流程

  • 检查镜像:Docker引擎检查本地是否存在指定的基础镜像,若不存在则会从仓库下载该镜像;
  • 执行命令:在基础镜像上,Docker引擎执行RUN中指定的命令,这些命令可以是shell命令或exec格式的命令;
  • 提交结果:执行完命令后,Docker会将更新提交为一个新的镜像层;该镜像层包含了所有由RUN指令引起的文件系统更改;
  • 创建容器:当使用构建好的镜像创建容器时,Docker会将这些镜像层叠加在一起,并在最顶层添加一个可写层,用于容器运行时的更改;

        备注:RUN以Shell模式运行命令的(如 RUN apt-get update && apt-get install -y nginx),Docker将调用 /bin/sh -c 来执行这些命令;以exec模式运行命令的(如 RUN ["apt-get","update"]),Docker将直接调用指定命令,而不会通过shell;

3. 注意事项

  • 分层存储:Docker镜像采用分层存储的方式,每个RUN指令都会创建一个新的镜像层;这种方式有助于镜像的复用和共享,但过多的层可能会导致镜像体积过大,影响构建和传输效率;
  • 命令合并:为减少镜像层数,建议将多个命令合并为一个RUN指令运行;这可以通过使用shell的&&、|等操作符或使用换行符\来实现;
  • 环境变量:在RUN中使用环境变量时,需要注意环境变量的作用域和值;在shell模式下,可以直接使用环境变量,而在exec模式下,则需要确保环境变量在命令执行时可用;

  • 8
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
根据提供的命令`docker build -t nacos-docker`,这是一个用于构建Docker镜像的命令。`-t`参数用于标记镜像,`nacos-docker`是镜像名称。 Docker是一个开源的容器化平台,可以将应用程序和服务放入容器中进行部署,而容器又可以在不同的环境中运行,从而实现了跨平台和快速部署。Docker镜像是一个轻量级、独立的可执行软件程序包,其中包含了运行应用程序所需的所有文件、依赖项和配置。Docker镜像可以在不同的Docker容器中运行,并且可以在Docker Hub等容器仓库中共享和获取。 下面是构建一个Docker镜像的步骤: 1. 编写Dockerfile文件,该文件描述了如何构建Docker镜像,包括基础镜像、应用程序代码、依赖项等信息。 2. 执行`docker build`命令构建镜像。在构建过程中,Docker会执行Dockerfile文件中的每个命令,生成一个新的镜像。 3. 使用`docker run`命令启动容器,并运行应用程序。 下面是构建nacos-docker镜像的步骤: 1. 创建一个名为nacos-docker的文件夹,并在该文件夹中创建一个Dockerfile文件。 2. 在Dockerfile中定义基础镜像和安装nacos的命令。例如: ```shell FROM openjdk:8-jdk-alpine RUN mkdir /nacos && cd /nacos \ && wget https://github.com/alibaba/nacos/releases/download/1.4.2/nacos-1.4.2.tar.gz ``` 3. 执行`docker build -t nacos-docker .`命令构建镜像,其中`.`表示Dockerfile所在的当前目录。Docker会执行Dockerfile中的每个命令,并生成一个新的名为nacos-docker镜像。 4. 使用`docker run`命令启动容器,并运行nacos应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我叫白小猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值