首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Docker build与Docker run的行为不同

Docker是一种开源的容器化平台,可以实现应用程序的快速部署、可移植性和可扩展性。Docker build和Docker run是Docker中两个重要的命令,它们的行为有以下不同:

  1. Docker build(构建镜像):
    • 概念:Docker build命令用于构建Docker镜像,通过读取Dockerfile文件中的指令来逐步构建镜像。Dockerfile是一个纯文本文件,包含了一系列的指令,用于描述如何构建镜像。
    • 分类:Docker build命令可以根据Dockerfile指令的不同,对镜像的构建过程进行分类。例如,基于其他镜像构建、安装软件包、复制文件、设置环境变量等。
    • 优势:Docker build具有快速、可重复、可自动化的优势,能够提高应用程序的交付效率和一致性。
    • 应用场景:Docker build适用于需要自动化构建、管理和部署应用程序的场景。特别适用于团队协作开发、持续集成和持续部署等场景。
    • 腾讯云相关产品:腾讯云提供的Docker容器服务(TKE)可以帮助用户高效构建、管理和运行容器化应用,更多详情请参考:腾讯云容器服务
  • Docker run(运行容器):
    • 概念:Docker run命令用于在Docker中运行容器,将之前构建好的镜像启动成为一个运行中的容器实例。
    • 分类:Docker run命令可以根据不同的参数和选项,对容器的运行行为进行分类。例如,指定容器名称、指定网络模式、暴露端口、指定环境变量等。
    • 优势:Docker run具有快速启动、隔离性、易管理和可移植性等优势,能够提供一致的运行环境和高度可扩展的应用部署方式。
    • 应用场景:Docker run适用于需要快速部署、管理和扩展应用程序的场景。特别适用于微服务架构、持续集成和容器编排等场景。
    • 腾讯云相关产品:腾讯云提供的Docker容器服务(TKE)可以帮助用户高效构建、管理和运行容器化应用,更多详情请参考:腾讯云容器服务

总结:Docker build和Docker run是Docker中的两个重要命令,分别用于构建镜像和运行容器。Docker build通过读取Dockerfile指令构建镜像,具有快速、可重复、可自动化的优势,适用于自动化构建和部署应用程序的场景。Docker run用于在Docker中运行容器,具有快速启动、隔离性、易管理和可移植性的优势,适用于快速部署和管理应用程序的场景。腾讯云提供的Docker容器服务(TKE)可以帮助用户高效构建、管理和运行容器化应用。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

docker︱docker run的解读与一键部署

这是之前的文章: docker︱在nvidia-docker中使用tensorflow-gpu/jupyter 文章目录 1 docker run的解读 1.1 docker run 1.2 几种进入容器的方式...) 3.2 docker 镜像的加载与导入(save / load) 3.3 容器与镜像导入/导出的差异 4 精简Docker镜像大小的必要性 4.1 docker大小精简的方式 4.2 清理Docker...占用的磁盘空间的方式 5 Dockerfile 1 docker run的解读 1.1 docker run docker run有非常多的启动参数,可参考:Docker run 命令 docker run...run -d启动的容器) -i: 以交互模式运行容器,通常与 -t 同时使用; -P: 随机端口映射,容器内部端口随机映射到主机的高端口 -p: 指定端口映射,格式为:主机(宿主)端口:容器端口 -t.../test.sh 报错三: exec user process caused "no such file or directory" 解决: 确定你的.sh文件确保存在,因为docker之中和你的宿主机不同

1K20
  • docker build Dockfile ---- RUN 中 cd 切换路径失败 的原因、解决

    写法如下: FROM openjdk:8-jre-alpine MAINTAINER JiangYu RUN echo `pwd` RUN cd ~ RUN echo `pwd` RUN cd...在 Shell 中,连续两行是同一个进程执行环境,因此前一个命令修改的内存状态,会直接影响后一个命令; 而在 Dockerfile 中,这两行 RUN 命令的执行环境根本不同,是两个完全不同的容器。...每一个 RUN 都会启动一个容器、执行命令、然后提交存储层文件变更。 第一层 RUN cd /app 的执行仅仅是当前进程的工作目录变更,一个内存上的变化而已,其结果不会造成任何文件变更。...第二层启动的是一个全新的容器,跟第一层的容器更完全没关系,自然不可能继承前一层构建过程中的内存变化。 因此如果需要改变以后各层的工作目录的位置,那么应该使用 WORKDIR 指令。...PS:第 2 点参见:https://yeasy.gitbooks.io/docker_practice/image/dockerfile/workdir.html

    1.6K20

    Docker(36)- docker run 的流程和原理

    背景 目前项目组上, Docker 用的非常重,所有微服务都是通过 docker 来部署的 所以不能仅仅会命令,还得会一些原理的东西,特此补一篇基础点的,后面再更加深入一些 docker 原理 本篇学习资源来自...p=8 hello world 的栗子 直接在命令行敲 docker run hello-world ?...docker run 的流程 根据上面的结果运行图,可以写出一个 docker run 的流程图,如下 ? docker 的底层原理 docker 是如何工作的?...docker 是一个 C/S 结构的系统 docker 的守护进程运行在主机上 通过 Socket 从客户端访问 docker-Server 接收到 docker-Client的指令,就会执行这个命令...Linux 服务器敲 docker 命令(客户端) 客户端访问 docker 的后台守护进程 后台守护进程来执行命令,作用于不用的 docker 容器

    1.3K30

    软件测试|docker create 与 docker run的异同,你都会了吗?

    Docker Run vs Docker Create:创建和管理容器的差异 Docker是一种流行的容器化平台,它提供了多种命令来创建和管理容器。...其中两个常用的命令是"docker run"和"docker create"。虽然它们都用于创建容器,但在用法和功能上有一些区别。让我们来看看它们之间的差异。...docker run docker run可以创建并运行一个新的容器,语法如下: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]...,通常与 -t 同时使用 -t 启动容器后,为容器分配一个命令行,通常与 -i 同时使用 -v 目录映射,容器目录挂载到宿主机目录,格式: : -d 守护进程,后台运行该容器...run"命令用于创建并启动一个新的容器,而"docker create"命令仅用于创建容器,而不会自动启动它。

    42010

    软件测试|docker create 与 docker run的异同,你都会了吗?

    图片Docker Run vs Docker Create:创建和管理容器的差异Docker是一种流行的容器化平台,它提供了多种命令来创建和管理容器。...其中两个常用的命令是"docker run"和"docker create"。虽然它们都用于创建容器,但在用法和功能上有一些区别。让我们来看看它们之间的差异。...docker rundocker run可以创建并运行一个新的容器,语法如下:docker run [OPTIONS] IMAGE [COMMAND] [ARG...]注: 跟 docker create...,容器是否自动重启||--privileged|容器内是否使用真正的 root 权限|-p 的写法docker run -p ip:主机端口:容器端口docker run -p 主机端口:容器端口 (常用...) docker run -p 容器端口使用示例:docker run --name muller_mysql mysql图片总结"docker run"命令用于创建并启动一个新的容器,而"docker

    20330

    DockerFile,Docker Image和Docker Container之间的不同

    容器化的主要优势之一是它允许开发人员将他们的程序与在任何 Linux 发行版上运行所需的所有依赖项捆绑在一起。这消除了手动安装每个要求的需要。 多个容器,每个都基于相同或不同的图像,可以同时运行。...Docker 产生了操作系统的大量实例,可与虚拟机相媲美。另一方面,Docker 允许您构建在同一操作系统上运行的容器。因此,给定的硬件配置可能支持比虚拟机更多的容器。...第一步是运行 Docker 并打开一个终端窗口。然后使用 image name: tag name命令启动 Docker。这将启动一个与由图像启动的容器的 shell 会话。...docker build [OPTIONS] PATH | URL | - 现在,让我们使用 Dockerfile 创建一个简单的图像: Docker build [location of your Dockerfile...它们不同于主机和主机上运行的任何其他实例。尽管它们有所不同,但虚拟机和容器是相当等价的。 执行 Docker 映像时,它会创建一个隔离的安全存储库。Docker 容器可以启动、停止、操作和删除。

    63950

    【Docker学习系列】Docker学习3-docker的run命令干了什么?docker为什么比虚拟机快?

    通过前面学习,我们已经在centos系统中安装了docker,也成功的拉取了docker的hello-word镜像及运行成功了。...那么有没有思考过如下问题: 思考问题1: docker run 到底干了些什么?...当我们执行docker run 镜像名称之后,docker会执行以下流程: 1:docker会先从本机中寻找该镜像,查看本机是否存在。...主要有以下两点: 1:docker有着比虚拟机更少的抽象层 由于Docker不需要Hypervisor(虚拟机)实现硬件资源虚拟化,运行在docker容器上的程序直接使用的都是实际物理机的硬件资源; 我们知道虚拟机是需要虚拟出...2:docker利用的是宿主机的内核,而不需要加载操作系统的OS内核 当新建一个容器时候,docker不需要和虚拟机一样重新加载一个操作系统内核。

    56620

    一文详解Docker与虚拟机的不同

    Docker 在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极大的简化了容器的创建和维护。使得 Docker 技术比虚拟机技术更为轻便、快捷。...不同点简单来说:虚拟机(virtual machine)是在操作系统中模拟硬件设备,然后运行另一个操作系统,比如在 Windows 系统里面运行 Ubuntu 系统,这样就可以运行任意的Ubuntu应用了...而Docker仅仅是封装函数库,并没有模拟完整的操作系统,​编辑特性Docker虚拟机启动秒级分钟级硬盘使用一般为 MB一般为 GB性能接近原生弱于系统支持量单机支持上千个容器一般几十个Docker和虚拟机的差异...: docker是一个系统进程;虚拟机是在操作系统中的操作系统 docker体积小、启动速度快、性能好;虚拟机体积大、启动速度慢、性能一般 具体来说:作为一种新兴的虚拟化方式,Docker 跟传统的虚拟化方式相比具有众多的优势...更轻松的迁移:由于 Docker 确保了执行环境的一致性,使得应用的迁移更加容易。Docker 可以在很多平台上运行,无论是物理机、虚拟机、公有云、私有云,甚至是笔记本,其运行结果是一致的。

    4.1K171

    如何 build 出尽可能小的 docker image?

    简介 我们自己构建 Docker image 时都希望结果镜像越小越好,那么如何才能尽量变小呢?...案例 目标 非常简单,build 一个 java 镜像 基于 centos 基础镜像,和下载好的 jdk-8u101-linux-x64.tar.gz 过程 1)第一版 Dockerfile 内容: FROM...centos COPY jdk-8u101-linux-x64.tar.gz /usr/local/ WORKDIR /usr/local RUN tar -zxf /usr/local/jdk-8u101...rm 删除了压缩包,但与上面的 COPY 不在一层,所以删了也无法减小最终的体积 2)第二版 为了解决上一版中压缩包的问题,可以使用 ADD 命令,直接把解压后的内容放入镜像,而不是把压缩包放入进行内再解压...后镜像大小为:562 MB,少了压缩包的大小,这样就好了很多 如果压缩包不在本地,需要通过网络下载,然后解压,那么就要让 下载、解压、删除 这3个动作在同一层操作,例如: RUN wget http:

    1.6K70

    不同Docker操作系统的时区同步

    我们经常会发现docker和宿主机的时间是不同步的,这几乎是个坑,特别是数据库系统,时间错误简直要命。...遇到docker时区不一致,我们只需要对其进行同步处理就可以了,但由于docker运行的基础操作系统不同,或者系统里没装时区工具或是没有zoneinfo信息,那么我们的处理方式就略有不同: 1....Docker常用的运行环境 docker常用的操作系统包括busybox、alpine、debian、ubuntu、centos,它们的大小都不一样,适用的范围也会有区别,一般由docker中部署的项目特性来决定...环境,除了进入容器用以上的命令查看方式来判断操作系统版本,有时候可以通过镜像文件dockerfile的images标识或是RUN命令来判断(其实不好判断,一般apk命令是针对alpine,apt-get...ls /usr/share/zoneinfo # 拷贝需要的时区文件到localtime,国内需要的是Asia/Shanghai: RUN ln -sf /usr/share/zoneinfo/Asia

    2.6K60

    在不同环境下 Docker 的安装部署

    本篇内容主要介绍了:Docker:不同环境下的安装部署,包括,Docker 在 Centos7 下的安装、Docker 在 MacOS 下的安装、Docker 在 Windows 下的安装、以及 Docker...---- 二、Docker 在 MacOS 下的安装 1、Homebrew 方式安装 Homebrew 的 Cask 已经支持 Docker Desktop for Mac,因此可以很方便的使用 Homebrew...---- 三、Docker 在 Windows 下的安装 1、前置说明 Docker 并非是一个通用的容器工具,它依赖于已存在并运行的 Linux 内核环境。...Docker 实质上是在已经运行的 Linux 下制造了一个隔离的文件环境,因此它执行的效率几乎等同于所部署的 Linux 主机。 因此,Docker 必须部署在 Linux 内核的系统上。...在 Windows 上部署 Docker 的方法都是先安装一个虚拟机,并在安装 Linux 系统的的虚拟机中运行 Docker。

    2K20

    Docker系列——2.Docker的下载与安装

    什么是Docker? Docker是一个容器平台,将应用程序和依赖打包在一起,在虚拟容器中独立运行,这样也就完全独立于环境。...传统虚拟机方式运行 10 个不同的应用就要起 10 个虚拟机,而Docker 只需要启动 10 个隔离的应用即可,这样也就不占内存,且速度快很多。 Docker的结构图 ?...下载和安装 我们先用MobaXTerm连接上Linux,如下图,如果不清楚的,可移步上篇,Docker系列——1.MobaXTerm。 ?...这边使用的是阿里的镜像仓库,国外的速度太慢,这主要是因为那个墙,理由大家都懂的。 ? 下面我们就可以愉快的安装啦。这个步骤的安装信息较多,可以忽略。 ?...在过程中需要输入确定的时候,输入y就可以啦,如下图。 ? ? 接下来看看安装好了吗?使用docker version可以查询docker安装的版本,从下图可以看到版本为18.09.0。 ?

    61720

    docker的使用与进阶

    : Docker如何解决不同系统环境的问题?...Docker将用户程序与所需要调用的系统(比如Ubuntu)函数库一起打包 Docker运行到不同操作系统时,直接基于打包的函数库,借助于操作系统的Linux内核来运行 1.1.4.小结 Docker如何解决大型项目依赖关系复杂...,不同组件依赖的兼容性问题?...创建并运行一个容器 创建并运行nginx容器的命令: docker run --name containerName -p 80:80 -d nginx 命令解读: docker run :创建并运行一个容器...run的命令中通过 -v 参数挂载文件或目录到容器中: -v volume名称:容器内目录 -v 宿主机文件:容器内文 -v 宿主机目录:容器内目录 数据卷挂载与目录直接挂载的 数据卷挂载耦合度低,由

    1.1K20

    Docker入门与实践:Docker中的网络功能简介

    Docker入门与实践:Docker中的网络功能简介 Docker提供网络服务的方法包括两种: 通过外部访问docker容器的方式; 通过Docker容器间互联的方式。...1.1 使用-P选项外部访问docker容器 如下图所示,使用docker run -d -P training/webapp python app.py命令创建一个可以通过外部网络访问的docker容器...containerPort格式可以将本地主机特定端口映射到容器的特定端口,以实现外部访问容器的目的,指令如下所示: docker run -d -p 5000:5000 training/webapp...python app.py 执行完上面指令,使用docker container ls命令就可以看出绑定了两组端口: 二、Docker容器的互联 Docker容器不仅可以通过网络与本地主机互联...、创建连接docker网络的容器 首先,启动或创建一个busybox_1容器并连接到上面创建的My_Netdocker网络,指令如下所示: docker run -it --rm \ --name

    81930
    领券