【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 <用户名>


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


相关文章
|
14天前
|
应用服务中间件 PHP nginx
Docker-compose 编排lnmp(dockerfile) 完成Wordpress
通过使用Docker Compose,我们可以轻松编排LNMP环境并部署WordPress。本文详细介绍了各组件的Dockerfile和配置文件编写,并通过docker-compose.yml文件实现了整个环境的自动化部署。这种方法不仅简化了部署过程,还提高了环境的可移植性和一致性。希望本文能帮助你更好地理解和使用Docker Compose来管理和部署复杂的应用程序。
40 3
|
30天前
|
Docker 容器
docker中使用Dockerfile自动创建数据卷
【10月更文挑战第12天】
19 5
|
5月前
|
Ubuntu C++ Docker
Docker的基本指令和HTML/PYTHON/C++的简单创建示例
Docker的基本指令和HTML/PYTHON/C++的简单创建示例
|
1月前
|
消息中间件 NoSQL Kafka
Flink-10 Flink Java 3分钟上手 Docker容器化部署 JobManager TaskManager Kafka Redis Dockerfile docker-compose
Flink-10 Flink Java 3分钟上手 Docker容器化部署 JobManager TaskManager Kafka Redis Dockerfile docker-compose
39 4
|
2月前
|
应用服务中间件 nginx Docker
Docker镜像-基于DockerFile制作编译版nginx镜像
这篇文章介绍了如何基于Dockerfile制作一个编译版的nginx镜像,并提供了详细的步骤和命令。
423 17
Docker镜像-基于DockerFile制作编译版nginx镜像
|
2月前
|
应用服务中间件 Linux nginx
Docker镜像-基于DockerFile制作yum版nginx镜像
本文介绍了如何使用Dockerfile制作一个基于CentOS 7.6.1810的yum版nginx镜像,并提供了详细的步骤和命令。
134 20
|
2月前
|
Docker 容器
7-13|docker build -t image-name:tag path/to/Dockerfile 这个命令具体什么意思
7-13|docker build -t image-name:tag path/to/Dockerfile 这个命令具体什么意思
|
3月前
|
Docker 容器
在Docker中,Dockerfile有哪些常见指令?
在Docker中,Dockerfile有哪些常见指令?
|
3月前
|
监控 Linux API
在Docker中,docker run指令执行后,生成了哪些进程?
在Docker中,docker run指令执行后,生成了哪些进程?
|
3月前
|
缓存 Docker 容器
在Docker中,docker commit生成的镜像和dockerfile生成镜像有什么区别?
在Docker中,docker commit生成的镜像和dockerfile生成镜像有什么区别?