【Docker】Dockerfile的常用指令

简介: 【Docker】Dockerfile的常用指令

1. Docker指令


1.1 COPY复制指令


格式:


COPY <宿主机路径> <容器目录地址>


COPY ["宿主机路径","容器路径"];

image.png



比如说这个指令,是把宿主机的redis-master,conf 复制到容器的根目录config下


image.png


1.2 ADD复制


ADD指令跟COPY的指令格式是一样的,但是在COPY基础上增加了一些功能


这里只介绍一种,因为这个指令并不提倡使用


ADD 宿主机的压缩文件  容器地址  这样会直接把压缩文件解压过去


image.png


所以说在COPY和ADD指令选择时,使用文件复制全部使用COPY,仅在需要自动解压时才使用ADD


1.3 CMD


这个指令有俩种用法


shell格式:CMD <命令>


exec格式:CMD ["可执行文件","参数1","参数2"];


比如:


CMD echo $HOME


在实际执行中,会将其变更为:


CMD ["sh","-c","echo $HOME"];


Docker不是虚拟机,容器中的应用都应该以前台执行,而不是虚拟机那样可以启动后台服务,容器内没有后台服务的概念


在比如说


CMD service nginx start


执行完之后会发现容器立即就退出了,CMD service nginx start会被理解为CMD ["sh","-c","service nginx start"];因此主进程就是sh。那么当service nginx start命令结束时,sh也就结束了,sh作为主进程推出了,自然就会令容器退出了


正确的做法是直接执行nginx可执行文件,并且要求以前台形式运行


CMD ["nginx","-g","daemon off"];


1.4 ENV环境变量


格式:

ENV key value


ENV key=value key1=value1


例如:ENV NODE_VERSION 7.2.0


1.5 VOLUME共享目录


VOLUME /usr/docker/config  /config


会自动在容器里边创建config目录。并共享 /usr/docker/config文件


1.6 WORKDIR 指定工作目录


WORKDIR /config


这个就是指在进入容器后会在config这个目录


image.png


1.7 USER 指定当前用户


格式: USER <用户名>


就是在容器里边使用哪个用户


相关文章
|
21天前
|
缓存 安全 Docker
《Docker 简易速速上手小册》第3章 Dockerfile 与镜像构建(2024 最新版)
《Docker 简易速速上手小册》第3章 Dockerfile 与镜像构建(2024 最新版)
53 0
|
2月前
|
应用服务中间件 Shell nginx
Docker进阶:深入了解 Dockerfile
Dockerfile 是定义 Docker 镜像内容和构建步骤的文本文件,用于定制化镜像构建,包括基础镜像选择、软件安装和环境变量设置等。其优点在于支持容器化趋势,简化快速部署和交付,保证环境一致性,实现资源隔离和安全性,以及促进持续集成与持续部署。Dockerfile 指令如 FROM(指定基础镜像)、RUN(执行命令)、CMD(容器启动命令)和 EXPOSE(声明端口)。编写规则包括使用大写指令、创建 .dockerignore 文件排除无关文件等。
100 0
|
4月前
|
Cloud Native NoSQL Redis
云原生 Docker Dockerfile 构建应用
【1月更文挑战第9天】云原生 Docker Dockerfile 构建应用
|
4月前
|
Cloud Native Docker 容器
云原生 Docker Dockerfile 构建配置
【1月更文挑战第9天】云原生 Docker Dockerfile 构建配置
|
4月前
|
分布式计算 Java Linux
【深入浅出Docker原理及实战】「原理实战体系」零基础+全方位带你学习探索Docker容器开发实战指南(Dockerfile使用手册)
Docker 是一套构建在 Linux 内核之上的高级工具,旨在帮助开发人员和运维人员更轻松地交付应用程序和依赖关系,实现跨系统和跨主机的部署。使用安全且轻量级的容器环境来实现这一目标。容器可以手动创建,也可以通过编写 Dockerfile 自动创建。开发人员和运维人员可以将应用程序及其依赖打包到容器中,实现应用程序的可移植性和环境一致性。
124 5
【深入浅出Docker原理及实战】「原理实战体系」零基础+全方位带你学习探索Docker容器开发实战指南(Dockerfile使用手册)
|
4月前
|
Java 持续交付 Docker
Docker 项目如何使用 Dockerfile 构建镜像?
Docker 简介:讲述 Docker 的起源、它是如何革新现代软件开发的,以及它为开发者和运维团队带来的好处。重点强调 Docker 的轻量级特性和它在提高应用部署、扩展和隔离方面的优势。
|
3天前
|
数据库 Docker 容器
【Docker 专栏】使用 Dockerfile 自动化构建 Docker 镜像
【5月更文挑战第8天】Dockerfile是构建Docker镜像的关键,它包含一系列指令,用于描述应用运行环境及所需软件包。通过自动化构建,能提高效率、保证可重复性并提升灵活性。确定基础镜像、安装依赖、设置环境后,执行Dockerfile生成镜像,用于应用程序部署。虽然需要熟悉Docker技术和应用细节,但其带来的益处使其成为现代软件开发和部署的重要工具。
【Docker 专栏】使用 Dockerfile 自动化构建 Docker 镜像
|
12天前
|
应用服务中间件 Shell nginx
制作docker镜像的dockerfile编写规则汇总
制作docker镜像的dockerfile编写规则汇总
|
17天前
|
应用服务中间件 Shell nginx
[Docker] Dockerfile
[Docker] Dockerfile
|
17天前
|
JavaScript Java Docker
使用 Dockerfile 构建和定制 Docker 镜像
Dockerfile是构建Docker镜像的文本文件,包含一系列指令,如`FROM`, `WORKDIR`, `COPY`, `RUN`, `EXPOSE`和`CMD`。它用于自动化`docker build`命令来创建Image。使用Dockerfile可以基于官方镜像定制应用镜像,方便应用容器化和扩展。基本流程包括选择基础镜像、设置工作目录、安装依赖、暴露端口和定义启动命令。构建镜像使用`docker build`,运行容器用`docker run`。了解并熟练使用Dockerfile能提升容器化部署效率。
24 0