FROM 指定基础镜像

MAINTAINER 指定维护者的信息,可以没有

RUN  你想让它干啥(在命令前面加上RUN即可)

ADD  添加宿主机的文件到容器内

COPY 复制文件

WORKDIR  设置当前工作目录

VOLUME 设置卷,挂在主机目录

EXPOSE 指定对外映射端口

CMD  指定容器启动后要干的事情

注意:

ADD相比于COPY命令,多了一些功能:

1. 源文件是一个URL,此时docker引擎会下载该链接,放入目标路径,且权限设置为600

2. 源文件是一个URL,且是一个压缩包,不会自动解压

3. 源文件是一个压缩包,且是gzip, bzip2, xz, tar情况,ADD指令会自动解压缩该文件到目标路径

COPY指令能够保留源文件的元数据,如权限,访问时间等等

CMD [“参数1”, “参数2”]   # 注意是双引号

在指定了entrypoint指令后,用CMD指定具体的参数,docker不是虚拟机,是宿主机的一个进程,所以在程序启动的时候需要指定运行参数,这就是CMD指令的作用

CMD [“/bin/bash”]

CMD [“cat”, “/etc/os-relaese”]

ENTRYPOINT 和run指令一样,都是在指定容器启动程序以及参数,当指定了ENTRYPOINT之后,CMD指令的语义就有了变化,是把CMD的内容作为参数传递给ENTRYPONINT指令

 

ENTRYPOINT [“curl”, “-s”, “http://ipinfo.io/ip”]

启动容器是可以携带-I参数

docker run ${image_name} -I

 

注意:

如果dockerfile中使用CMD,则docker run中传入的参数会把CMD中的参数覆盖,而dockerfile中使用ENTRYPOINT,则docker run中传入的参数作为ENTRYPOINT指令的参数正常执行

 

构建镜像   docker build .

修改镜像名    docker tag ${image_id} ${image_name}

 

请求当前机器的IP信息:

curl -s http://ipinfo.io/ip

参数 -I 可以返回头信息

curl -s http://ipinfo.io/ip -I

 

ARG和ENV指令

作用都是设置环境变量,区别在于ENV无论是在镜像构建时,还是容器运行时,该变量都可以使用,ARG只是用于构建镜像需要设置的变量,容器运行时就消失了

 

VOLUME

容器运行时,应该保证在存储层不写入任何数据,运行在容器内产生的数据,推荐通过挂载写入到宿主机上,进行维护

VOLUME /data  # 将容器内的/data文件夹,在容器运行时,该目录自动挂载为匿名卷,任何向该目录中写入数据的操作,都不会被容器记录,保证容器存储层无状态理念

# Dockerfile

FROM centos

VOLUME [“/data1”, “/data2”]

# 该容器运行时候,这个两个目录自动和宿主机的目录做好映射关系 

 

1.容器数据挂载的方式,通过dockerfile,指定VOLUME目录

2. 通过docker run -v 参数,直接设置需要映射的挂载目录

 

EXPOSE

指定容器运行时对外提供的端口服务

docker port  查看端口信息

docker run -p   宿主机端口:容器端口

docker run -P  # 随机端口

 

USER

用于改变环境,用于切换用户

USER root

 

原文地址:http://www.cnblogs.com/wllit/p/16909947.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性