创建txt文件指令_Linux云计算教程全套视频合集:WORKDIR 指令讲解
WORKDIR 指令用于声明当前的工作目录,以后各层的当前目录就被改为指定的目录。格式为 WORKDIR <工作目录路径>。
如该目录不存在,WORKDIR 会帮你建立目录。再次强调!不要以为编写 Dockerfiel 是在写 shell 脚本。
下面是一个错误示例:
RUN cd /app
RUN echo "hello" > world.txt
如果将这个 Dockerfile 进行构建镜像运行后,会发现找不到 /app/world.txt 文件,或者其内容不是 hello。
原因其实很简单,这两行 RUN 命令的执行环境根本不同,是两个完全不同的容器。这就是对 Dockerfile 构建分层存储的概念不了解所导致的错误。
之前说过每一个 RUN 都是启动一个容器、执行命令、然后提交存储层文件变更。
两行 RUN 分别构建了并启动了各自全新的容器。
因此如果需要改变以后各层的工作目录的位置,那么应该使用 WORKDIR 指令。
FROM alpine
WORKDIR /a/b
RUN touch a_b_f.txt
WORKDIR /a
RUN touch a_f.txt
[root@localhost workdir]# docker run -it alpine:workdir /bin/sh
/a # ls
a_f.txt b
/a # cd b
/a/b # ls
a_b_f.txt
COPY 指令
格式:
- COPY <源路径>... <目标路径>
- COPY ["<源路径1>",... "<目标路径>"]
和 RUN 指令一样,也有两种格式,一种类似于命令行,一种类似于函数调用。
<目标路径> 可以是容器内的绝对路径,也可以是相对于 WORKDIR 指定的工作目录的相对路径。目标路径不需要事先创建,如果目录不存在会在复制文件前先被创建。
COPY 指令将会从构建的上下文目录中,把源路径的文件或目录复制到新的一层的镜像内的 <目标路径> 位置。比如:
COPY qf.json /usr/src/app/
注意下面是错误的
COPY qf.json /usr/src/app
这样会把 qf.json 拷贝成为 /usr/src/ 目录下的 app 文件
<源路径> 可以是多个,支持通配符,如:
COPY qf* /app/
COPY q?.txt /app/
使用 COPY 指令,源文件的各种元数据都会保留。
比如读、写、执行权限、文件变更时间等。
ADD 指令
ADD 指令和 COPY 的格式和性质基本一致。但是在 COPY 基础上增加了一些功能。
支持自动解压缩,压缩格式支持: gzip, bzip2 以及 xz
官方推荐使用 COPY 进行文件的复制。
ADD 指定会使构建镜像时的缓存失效,导致构建镜像的速度很慢。
COPY 和 ADD 指令中选择的原则,所有的文件复制均使用 COPY 指令,仅在需要自动解压缩的场合使用 ADD。
ADD qf.tar.gz /
USER 指令
USER 则是改变执行 RUN, CMD 以及 ENTRYPOINT 这类命令的身份。
这个用户必须是事先在容器内存在(建立好)的,否则无法切换。
如果以 root 执行的脚本,在执行期间希望改变身份,比如希望以某个已经建立好的用户来运行某个服务进程,不要使用 su 或者 sudo,这些都需要比较麻烦的配置,而且在 TTY 缺失的环境下经常出错。建议使用 gosu。
创建txt文件指令_Linux云计算教程全套视频合集:WORKDIR 指令讲解相关推荐
- dockerfile文件名_Linux云计算教程全套视频合集:Dockerfile详解(一)
我们可以把刚才的对容器的所有操作命令都记录到一个文件里,就像写更脚本程序.之后用 docker build 命令以此文件为基础制作一个镜像,并会自动提交到本地仓库.这样的话镜像的构建会变的透明化,对镜 ...
- Python碎片化学习教程 @19. 在指定路径下创建.txt文件,并写入内容
代码功能:在指定路径下创建.txt文件,并写入内容 代码如下: file = open("1.txt", "w", encoding="utf8&qu ...
- C++ 如何用创建txt文件,并且写入内容(汇总)
void CreatTxt(char* pathName, unsigned char* rBuffer,int length)//创建txt文件 { //char* path = "C: ...
- idea 新建的java项目没发run_IntelliJ IDEA创建普通的Java 项目及创建 Java 文件并运行的教程...
最近突然看到这篇几年前随手记录的文章,居然浏览量那么高.看来很多小伙伴也开始从 Eclipse 转到 IDEA,这里为了让大家更好的掌握 IDEA 的使用,我建议大家可以看看下面这个 IDEA 教程. ...
- 创建txt文件_Mac电脑创建txt文件的方法
mac电脑该怎么创建TXT文件?可能很多新手小伙伴在刚刚接触mac电脑的时候不知道该如何创建TXT文件,今天本篇文章就为大家介绍如何设置新建txt文档文件的快捷键,还不知道的朋友快来学习一下吧! 第一 ...
- Python创建txt文件并读取与写入
Python创建txt文件并读取与写入 [PyCharm 软件内操作] 在PyCharm中创建工作目录(D:\python\test1\) 一.创建一个txt文档 # -*- coding: utf- ...
- Android开发创建txt文件并读写txt文件数据
在Android开发过程中,经常会遇到需要创建txt文件并写入数据的情况.今天我们来介绍一下如何实现这样的功能. 一.创建txt文件 /*** 创建txt文件*/private void create ...
- mac 打开html文件乱码,mac打开txt文件乱码如何处理方法教程
mac打开txt文件乱码如何处理方法教程 这篇文章主要帮助大家解决mac打开txt文件乱码这个现象,希望能帮助到你. 很多朋友在MAC电脑上下载了TXT格式的文件以后,会出现打开乱码的问题.针对这个问 ...
- Eagle for Mac怎么创建智能文件夹?mac版eagle创建智能文件夹的图文教程
Eagle 软件的"智能文件夹"功能,可以按名称.标签.颜色等条件自动分类你保存的图片.除此以外,他在提高你工作效率的同时,也可以使你灵感的采集和整理成为了一种愉悦的习惯. 那Ea ...
最新文章
- Django 模型查询2.3
- (0079)iOS开发之安全策略之HTTPS(2)
- 修改BeEF工具默认密码
- hdu 4763 Theme Section(next数组找串中三段相等)
- windows主机用scp命令向Linux服务器上传和下载文件
- MySQL之SELECT查询表达式
- 洛谷 - P4015 运输问题(费用流)
- 苹果html5跑分排行,UC浏览器HTML5跑分创新高 升全球第一
- 2021:测试人员面试时都中过哪些套路?
- uniapp动态显示数组_【报Bug】uniapp 在小程序中 动态修改添加 数组 数据 ,点击获取的索引值错误...
- 前言 第一章 为什么要培养好习惯
- 95. php 与 xml
- centos 6 安装 php 5.5 fpm支持
- 傅里叶变换对_复变函数6傅里叶变换
- Python openpyxl文档
- 【计算机网络】IP地址
- 解决异常 more than one ‘primary‘ bean found among candidates: [jacksonObjectMapper, objectMapper]
- 万字长文:人脸识别综述(学习笔记)
- cisco链路聚合 不均衡_思科CISCO交换机间链路聚合端口聚合实现方法详解
- 什么是MyBatis?怎么操作MyBatis?
热门文章
- Django环境配置
- supervisor安装和配置
- lg空调代码大全解决_LG空调故障代码大全
- SpringMVC解决静态资源不能访问
- iOS应用横竖屏切换
- 高级java技术web组件_(重温)JavaWeb--Servlet技术(二)(JavaWeb 的三大组件之一)...
- 用python进行多页数据爬取_Python Scrapy如何实现多页数据爬取?
- php实现多条件查找分页,Yii2.0框架实现带分页的多条件搜索功能示例
- mac笔记本怎么外接显示屏_win to go的安装与Macbook pro外接eGPU开启
- python3单例-python3如何运行文件夹python单例模式