刚接触docker的备忘记录
来源:互联网 发布:美国医学数据库 编辑:程序博客网 时间:2024/06/06 20:20
Dockerfile
Dockerfile的指令是忽略大小写的,建议使用大写,使用#作为注释,每行一条指令,每条指令可以带多个参数。
指令分为:
1. 构建指令:用于构建image,其指定的操作不会在运行image的容器上执行;
2. 设置指令:用于设置image属性,其指定的操作将在运行image的容器中执行。
FROM python:2.7-slim # 指定基础image,: 后面为版本MAINTAINER Nick Janetakis <nick.janetakis@gmail.com> # 指定image创建者信息ENV INSTALL_PATH /snakeeyes # 在image中设置一个环境变量,ENV <key> <value>RUN mkdir -p $INSTALL_PATH # 可以运行任何被基础image支持的命令WORKDIR $INSTALL_PATH # 切换目录,可以多次切换,对RUN,CMD,ENTRYPOINT生效COPY requirements.txt requirements.txt # 将主机环境中的安装需求文件拷贝到image环境中,依据上下文路径RUN pip install -r requirements.txt # pip安装依赖包COPY . . # 拷贝当前目录到image中,应用代码的拷贝CMD gunicorn -b 0.0.0.0:8000 --access-logfile - "snakeeyes.app:create_app()" # CMD设置container启动时执行的操作,这里执行gunicorn命令和几个参数,-b绑定ip地址,--access-logfile - 告诉gunicorn将所有记录答应到标准输出,最后创建flask应用
ADD和COPY指令
1. ADD指令
ADD指令的功能是将主机构建环境(上下文)目录中的文件和目录、以及一个URL标记的文件 拷贝到镜像中。
其格式是: ADD 源路径 目标路径
如:
#testFROM ubuntuMAINTAINER helloADD test1.txt test1.txtADD test1.txt test1.txt.bakADD test1.txt /mydir/ADD data1 data1ADD data2 data2ADD zip.tar /myzip
有如下注意事项:
1. 如果源路径是个文件,且目标路径是以 / 结尾, 则docker会把目标路径当作一个目录,会把源文件拷贝到该目录下。
如果目标路径不存在,则会自动创建目标路径。
2. 如果源路径是个文件,且目标路径是不是以 / 结尾,则docker会把目标路径当作一个文件。如果目标路径不存在,会以目标路径为名创建一个文件,内容同源文件;如果目标文件是个存在的文件,会用源文件覆盖它,当然只是内容覆盖,文件名还是目标文件名。如果目标文件实际是个存在的目录,则会源文件拷贝到该目录下。 注意,这种情况下,最好显示的以 / 结尾,以避免混淆。
3. 如果源路径是个目录,且目标路径不存在,则docker会自动以目标路径创建一个目录,把源路径目录下的文件拷贝进来。
如果目标路径是个已经存在的目录,则docker会把源路径目录下的文件拷贝到该目录下。
4. 如果源文件是个归档文件(压缩文件),则docker会自动帮解压。
2. COPY指令
COPY指令和ADD指令功能和使用方式类似。只是COPY指令不会做自动解压工作。
阅读全文
0 0
- 刚接触docker的备忘记录
- 刚接触git,记录一下自己的收获
- 刚接触mysql, 记录几个常用命令
- docker的初步接触
- 刚接触计算机啊,记录下看过的相关书籍,将长期记录,并希望你提出建议
- 写给刚接触Web Service的朋友
- 写给刚接触Web Service的朋友
- 给刚接触oracle朋友们的忠告!
- 刚接触的链表简单程序
- 给刚接触机器人的朋友们
- 刚接触maven时遇到的404
- 刚接触redis的一些问题
- ReactJS前端项目 问题与解决记录(刚接触前端,根据项目中遇到的坑持续更新)
- 刚接触delphi
- 刚接触Java编程
- 刚接触wampserver的简单又令人头疼的问题
- Cygwin 安装---针对初级的初级,刚接触的
- 一些最基本的概念,适合刚接触java者.
- 不忘初心,方得始终
- [php_07]php文件系统
- Eclipse没有装,怎么修改数据库的链接,一招教会你
- 泛型编程
- 01 进程和线程之由来
- 刚接触docker的备忘记录
- Java实现DES加密解密算法
- 进程间通信:共享内存
- fock炸弹
- 解决Qt"Unable to set geometry"问题
- extjs点击属性名如何让store不加载
- ajax清除缓存
- mysql 将A表数据插入到B表
- getDimension,getDimensionPixelSize,getDimensionPixelOffset三者的区别