DockerFile常用命令

本文详细介绍了DockerFile中的常用命令,包括构建镜像的基础指令如`FROM`、`RUN`、`COPY`、`CMD`等,以及如何通过`EXPOSE`设置端口、`VOLUME`创建持久化数据卷、`LABEL`添加元数据等关键操作,帮助读者深入理解DockerFile在Docker镜像构建中的应用。
摘要由CSDN通过智能技术生成
COPY 复制文件
COPY [--chown=<user>:<group>] <源路径>... <目标路径>
COPY [--chown=<user>:<group>] ["<源路径1>",... "<目标路径>"]
COPY  指令将从构建上下文目录中  <源路径>  的文件/目录复制到新的一层的镜像内的  <目标路径>  位置。
COPY package.json /usr/src/app/  这个是把【上下文】路径下的package.json文件复制到【容器】的/usr/src/app/下
源路径可以是多个,并且支持通配。
COPY hom* /mydir/      COPY hom?.txt /mydir/
<目标路径>  可以是容器内的【绝对路径】,也可以是相对于【工作目录】的相对路径(工作目录可以用  WORKDIR  指令来指定)。目标路径不需要事先创建,如果目录不存在会在复制文件前先行创建缺失目录。
PS:使用  COPY  指令,源文件的各种元数据都会保留 可以加上--chown=<user>:<group> 来确定用户和用户组。

ADD高级复制命令
ADD  指令和  COPY  的格式和性质基本一致。但是在  COPY  基础上增加了一些功能。
1.<源路径>可以是url,下载后权限600.
2.支持tar压缩包,会自动解压。

CMD 容器启动命令

CMD  指令的格式和  RUN  相似,也是两种格式:
    shell  格式: CMD <命令>
    exec  格式: CMD ["可执行文件", "参数1", "参数2"...]
    参数列表格式: CMD ["参数1", "参数2"...]  。在指定了  ENTRYPOINT  指令后,用  CMD  指定具体的参数。
    CMD  指令就是用于指定默认的容器主进程的启动命令的。
	
    比如直接执行  docker run -it ubuntu 其实是启了bash,因为这个镜像默认的CMD是/bin/bash,当然也可以再启动的时候指定运行程序,比如这样:
    docker run -it ubuntu cat /etc/os-release,这会直接输出版本信息的
    书中是建议使用exec格式,这类格式在解析时会被解析为JSON数组(因此一定用双引号不要用单引号)。
    如果使用shell格式的话,实际的命令会被包装为 sh -c 的参数形式进行执行。比如:
    CMD echo $HOME 在实际执行中,会将其变更为:CMD["sh", "-c", "echo $HOME"],也因为这个特点,才可以使用环境变量,因为shell会进行解析环境变量。
	
容器中应用在前台执行和后台执行的问题
    Docker不是虚拟机,容器中的应用都应该在前台执行,而不像是虚拟机、物理机那样,用systemd去启动后台服务,容器内没有后台服务的概念。
    比如 执行 CMD service nginx start 这个应该是想要后台启动nginx当服务用,但是真这么执行的时候,容器会立刻退出的。对于容器
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值