CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛
CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛
CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛

docker file 命令(学到了)dockerfile常用命令,Docker专题—Dockerfile编写,

1.dockerfile命令详解

编写DockerfileFROM指令和MAINTAINER指令

2.docker执行dockerfile

脚本的第1行是FROM指令通过FROM指令,docker编译程序能够知道在哪个基础镜像执行来进行编译所有的Dockerfile都必须以FROM指令开始第二条指令MAINTAINER,用来标明这个镜像的维护者信息。

3.dockerfile指令

RUN指令

4.dockerfile 菜鸟教程

接下来是RUN指令这条指令用来在docker的编译环境中运行指定命令上面这条指令会在编译环境运行/bin/sh -c “apt-get update && apt-get -y install …”。

5.dockerfile执行

RUN指令还有另外一种格式:RUN [“程序名”, “参数1”, “参数2”]这种格式运行程序,可以免除运行/bin/sh的消耗这种格式使用Json格式将程序名与所需参数组成一个字符串数组,所以如果参数中有引号等特殊字符,需要进行转义。

6.dockerfile使用

ENV指令

7.dockerfile示例

ENV指令用来指定在执行docker run命令运行镜像时,自动设置的环境变量。这些环境变量可以通过docker run命令的–evn参数来进行修改。COPY指令和ADD指令

8.dockerfile文件编写

COPY指令用来将本地(Dockerfile所在位置)的文件或文件夹复制到编译环境的指定路径下上面的例子里,boot2docker的Dockerfile希望将与Dockerfile同一目录下的kernel_config。

9.哪些是dockerfile的指令

文件复制到编译环境的/linux-kernal/.configDockerfile还提供了另外一个类似的指令:ADD在复制文件方面ADD指令和COPY指令的格式和效果是完全一样的这两个指令的区别主要由两点:。

10.docker指定dockerfile

ADD指令可以从一个URL地址下载内容复制到容器的文件系统中;ADD指令会将压缩打包格式的文件解开后复制到指定位置,而COPY指令只做复制操作。CMD指令

这是整个Dockerfile脚本的最后一条指令当Dockerfile已经完成了所有环境的安装与配置,通过CMD指令来指示docker run命令运行镜像时要执行的命令上面的例子里,在完成所有工作后,boot2docker的编译脚本将编译结果输出到本地环境下。

其他指令上面我们通过boot2docker的Dockerfile脚本学习了几个最常用的指令接下来我们再学习剩下的几个指令EXPOSE指令EXPOSE […]指令用于标明,这个镜像中的应用将会侦听某个端口,并且希望能将这个端口映射到主机的网络界面上。

但是,为了安全,docker run命令如果没有带上响应的端口映射参数,docker并不会将端口映射出了ENTRYPOINT指令ENTRYPOINT指令和前面介绍过的CMD一样,用于标明一个镜像作为容器运行时,最后要执行的程序或命令。

这两个指令有相同之处,也有区别通过两个指令的配合使用可以配置出不同的效果ENTRYPOINT指令有两种格式,CMD指令有三种格式:ENTRYPOINT [“程序名”, “参数1”, “参数2”] ENTRYPOINT 命令 参数1 参数2 CMD [“程序名”, “参数1”, “参数2”] CMD 命令 参数1 参数2 CMD 参数1 参数2

ENTRYPOINT是容器运行程序的入口也就是说,在docker run命令中指定的命令都将作为参数提供给ENTRYPOINT指定的程序同样,上面列举的CMD指令格式的后面两种格式也将作为参数提供给ENTRYPOINT

指定的程序默认的ENTRYPOINT是/bin/sh -c你可以根据实际需要任意设置但是如果在一个Dockerfile中出现了多个ENTRYPOINT指令,那么,只有最后一个ENTRYPOINT指令是起效的。

一种常用的设置是将命令与必要参数设置到ENTRYPOINT中,而运行时只提供其他选项例如:你有一个MySQL的客户端程序运行在容器中,而客户端所需要的主机地址、用户名和密码你不希望每次都输入,你就可以将。

ENTRYPOINT设置成:ENTRYPOINT mysql -u -p -h 而你运行时,只需要指定数据库名VOLUME指令VOLUME [“路径”]VOLUME指令用于在容器内创建一个或多个卷。

而更多的时候,是在执行docker run时指定要创建的卷以及本地路径来进行映射关于这个用法将在后面的章节学习到USER指令USER 用户名或用户IDUSER指令用于容器内运行RUN指令或CMD指令的用户。

例如,在构建一个nginx镜像时,你希望最后运行nginx的用户为nginx,就可以在CMD [“nginx”]之前将用户设置为nginx如果在运行docker run命令时设置了-u 用户名参数,那么将覆盖。

USER指令设置的用户WORKDIR指令WORKDIR 路径WORKDIR指令用于设置执行RUN指令、CMD指令和ENTRYPOINT指令执行时的工作目录在Dockerfile中可以多次设置WORKDIR。

,在每次设置之后的命令将使用新的路径ONBUILD指令ONBUILD 指令ONBUILD指令用于设置一些指令,当本镜像作为基础镜像被其他Dockerfile用FROM指令引用时,在所有其他指令执行之前先执行这些指令。

备注举例说明 ENTRYPOINT和CMD的区别dockerfile 中只有CMD [“cat”,”/etc/passwd”],启动dockerdocker run -itd –name docker_name docker_image

以上启动docker后,会直接执行cat /etc/passwd.和直接执行docker run -itd –name docker_name docker_image cat /etc/passwd

dockerfile 中只有ENTRYPOINT [cat],启动dockerdocker run -itd –name docker_name docker_image /etc/passwd以上启动docker后,会直接执行

cat /etc/passwd. – dockerfile 中有ENTRYPOINT [“cat”] 和 CMD [“/etc/passwd”] ,启动dockerdocker run -itd –name docker_name docker_image

以上启动docker后,会直接执行cat /etc/passwd. 如果在启动命令后在加入其他参数docker run -itd –name docker_name docker_image cat /etc/shadow

实际会执行: cat /etc/passwd cat /etc/shadow .这样就是错误的示例讲解DockerfileFROM hub.geovis.io/isphere/ubuntu:18.04_ali ##基础镜像 RUN mkdir -p /opt/app/ \ ##容器中创建 /opt/app和/nfs/data两个文件夹 mkdir -p /nfs/data/ \ WORKDIR /opt/app/ ## 切换到/opt/app下,一下命令会在/opt/app下执行 COPY requirements.txt /opt/app ## 将本地的requirements.txt文档拷贝到容器的/opt/app下 RUN \ pip3 install -r requirements.txt ## 执行命令,安装依赖包 COPY . /opt/app/ ## 将本地其他相关文件拷贝到容器/opt/app下 EXPOSE 5000 ## 容器申请端口5000 ENTRYPOINT [“python3”] CMD [“-m”, “swagger_server”] ##docker run时,会直接执行 python3 -m swagger_server

本地目录结构

打包命令在Dockerfile的目录下执行docker build -t dockerimage:tag .

© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏 分享
相关推荐
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容