标签:rom 2.7 动手 nbsp 当前目录 创建者 aaa 基础上 大小
摘自
https://mp.weixin.qq.com/s/_hq9dPe6390htN8BTkoQeQ
由于Dockerfile中所有的命令都是以下格式:INSTRUCTION argument,指令(INSTRUCTION)不分大小写,但是约定俗成是大写的。
1、FROM
FROM是用于制定基础的images,一般格式为FROM<images> or FROM<IMAGE>:<TAG> ,所以有的Dockerfile都用该以FROM开头,FROM命令指明Dockerfile所创建的镜像文件以什么镜像为基础,FROM以后的所有指令都会在FROM的基础上进行创建镜像。可以在同一个Dockerfile中多次使用FROM命令用于创建多个镜像。比如我们需要指定python2.7的基础镜像,可以像如下写法一样:
FROM python:2.7
2、MAINTAINER
MAINTAINER是用于指定镜像创建者和联系方式,一般格式为MAINTAINER<name>。这里我设置我的ID和邮箱
MAINTAINER AAA <AAA@ffff.com>
3、COPY
COPY是用于复制本地主机的<src>(为Dockerfile所在目录的相对路径)到容器中的<dest>。当使用本地目录为源目录时,推荐使用copy。一般格式为copy <src><dest>。例如我们要拷贝当前目录到容器中的/app目录下,我们可以这样操作
COPY . /app
4、WORKDIR
WORKDIR用于配合RUN,CMD,ENTRYPOINT命令设置当前工作路径。可以设置多次,如果是相对路径。一般格式为 WORKDIR/path/to/word/dir。
WORKDIR /app
5、RUN
RUN pip install -r requirements.txt
6、EXPOSE
EXPOSE命令用来指定对外开放的端口。一般格式为EXPOSE<PORT>,例如上面那个例子,开放5000端口:
EXPOSE 5000
7、ENTRYPOINT
ENTRYPOINT可以让你的容器表现得像一个可执行程序一样。一个Dockerfile中只能有一个ENTRYPOINT,如果有多个,则最后一个生效。格式有两种
例如下面这个,我们要将python变成那个可执行的程序,我们可以这样取做:
ENTRYPOINT ["python"]
8、CMD
CMD命令用于启动容器时默认的执行命令,CMD命令可以包含可执行文件,也可以不包含可执行文件。不包含可执行文件的情况下就要用ENTRYPOINT指定一个,然后CMD命令参数就会作为ENTRYPOINT的参数。
CMD命令有三种格式:
一个Dockerfile中只能有一个CMD,如果有多个,则最后一个生效。而CMD的shell形式默认调用 /bin/sh -c执行命令。CMD命令会被Docker命令行传入的参数覆盖: docker run busybox /bin/ echo Hello Docker会把CMD里的命令覆盖。
例如我们要启动 /app,我们可以用如下命令实现:
CMD ["app.py"]
我们大体已经把Dockerfile的写法讲述完毕,我们可以自己动手写一个例子:
FROM nginx MAINTAINER AAAA <AAAA@FFFF.com> RUN echo ‘Hello World‘ > /usr/share/nginx/html/index.html
标签:rom 2.7 动手 nbsp 当前目录 创建者 aaa 基础上 大小
原文地址:https://www.cnblogs.com/ylxn/p/10510492.html