欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

DockerFile commands 博客分类: docker dockerfile command 

程序员文章站 2024-03-23 11:44:34
...

DockerFile command

 

1.Docker忽略大小写,但是约定关键字大写

 

2.# docker文件注释

 

 

3.FROM

FROM imagename(:latest) OR

FROM imagename:specific version(tag)

 

FROM命令,是用于描述该dockerfile的基础依赖镜像,写在最前

如:

FROM centos:centos7

 

4.MAINTAINER 标识dockerfile文件的所有者和维护者

 

5.RUN

RUN 命令:

在当前镜像中旅,执行相应的命令,将结果作用于该镜像(immediate image

docker中每个命令执行结果都是立即产生新的镜像,将前一个temp删除,当前命令总是在最新镜像上执行。

 

如:

RUN cd /usr/share/html

RUN npm install

以上两个命令,本意是进入目录html下,安装npm,但是第二条并没有在html目录下执行,而是从新在/bin/sh下。如果想达到以上目的只能在同一个RUN下执行。亦或者都将目录拷贝到根目录下,不过这样会造成文件目录混乱。

DockerFile多个RUN同时执行使用 && 连接符。

 

RUN /bin/sh -c 'cd /usr/share/nginx/html/ && npm install'

 

所有的RUN命令都是在shell中执行

RUN <command> (这个命令运行一个shell - '/bin/sh -c')

等于:

RUN /bin/sh -c command

 

所有以上:

RUN /bin/sh -c cd /usr/share/html && npm install

 

6.WORKDIR

Dockerfile中,默认执行目录都是在/bin/sh,想在其他目录,需要WORKDIR /usr/share/html

为后续的RUNCMDENTRYPOINT指令配置工作目录。

WORKDIR /a

WORKDIR b

WORKDIR c

RUN pwd

则最终路径为/a/b/c

 

 

7.ADD

ADD source des

所有拷贝到container中的文件和文件夹权限为0755,uidgid0

RUN chmod a+x /apps/adf/*

RUN chmod 777 /apps/adf/work

 

8.COPY 

COPY source des

COPY是直接copy不做任何其他操作,与ADD类似,ADD多了自动解压。

 

9.ENV

设置镜像环境变量,在颈项环境变量中,可以直接使用主机已经定义的环境变量

ENV PATH /usr/local/bin:$PATH

 

10.CMD ENTRYPOINT

想在CMD命令中,运行多个命令

CMD nohup /bin/sh -c npm start && node ./server/server.js

ENTRYPOINT执行一个脚本文件:

 

11.ENTRYPOINT

ENTRYPOINT [“./entrypointname.sh”]

 

entrypoint.sh文件如下:

// entrypoint.sh

nohup npm start &

nohup node ./server/server.js &

 

ENTRYPOINT/CMD,一般两者可以配合使用,比如:

ENTRYPOINT ["/usr/sbin/sshd"]

CMD ["-D"]

 

** Docker daemon模式下,无论你是使用ENTRYPOINT,还是CMD,最后的命令,一定要是当前进程需要一直运行的,才能够防容器退出。***

 

 

12.USER

指定运行时的用户名或UID,后续的RUN也会使用指定的用户。

当服务不需要管理权限时,可以通过该命令指定运行用户。并且可以在之前创建所需要的用户

 

 

13.EXPOSE

容器内部服务开启端口,启动容器时候需要做主机端口映射 


14.VOLUME 命令  

VOLUME ["<mountpoint>"]

:

VOLUME ["/data"]

创建一个挂载点用于共享目录

相关标签: dockerfile command

上一篇: keepalived+mysql主主双备  

下一篇: