这次不鸽了,五一假期冰河为你整理了这些Dockerfile基础知识,拿走不谢!!

简介: 早之前,不少小伙伴让我整理下Dockerfile相关的基础知识,由于平时工作很忙,业余时间也被安排的满满的。所以,这些事情搁置了很久。所以,这次,趁着五一假期,不鸽了,安排。。。

Dockerfile常用命令

  • FROM: 继承基础镜像
  • MAINTAINER:镜像制作作者信息
  • RUN: 用来执行shell命令
  • EXPOSE: 暴露端口号
  • CMD: 启动容器默认执行的命令,会被覆盖
  • ENTRYPOINT: 启动容器真正执行的命令,不会被覆盖
  • VOLUME:创建该挂载点
  • ENV: 配置环境变量
  • ADD: 复制文件到容器,一般拷贝文件,压缩包自动解压
  • COPY:复制文件到容器,一般可拷贝目录
  • WORKDIR:设置容器的工作目录
  • USER:容器使用的用户

接下来,列举几个Dockerfile的实例。

Dockerfile实例

1.使用RUN创建一个用户

Dockerfile文件内容如下所示。

FROM centos:6
MAINTAINER binghe
RUN useradd binghe

执行构建,如下所示。

docker build -t centos:user .

2.使用ENV定义环境变量并用CMD执行命令

Dockerfile文件内容如下所示。

FROM centos:6
MAINTAINER binghe
RUN useradd binghe
RUN mkdir binghe
ENV envir=test version=1.0
CMD echo "envir:$envir version:$version"

执行构建并启动测试:

#执行构建
docker build -t centos:evn-cmd .
#启动镜像验证EVN和CMD
docker run centos:env-cmd

3.使用ADD添加一个压缩包,使用WORKDIR改变工作目录

FROM nginx
MAINTAINER binghe
ADD ./index.tar.gz /usr/share/nginx/html/
WORKDIR /usr/share/nginx/html

4.使用COPY拷贝目录

使用COPY拷贝指定目录下的所有文件到容器,不包括本级目录。此时只会拷贝webroot下的所有文件,不会将webroot拷贝过去:

FROM nginx
MAINTAINER binghe
ADD ./index.tar.gz /usr/share/nginx/html/
WORKDIR /usr/share/nginx/html
COPY webroot/ .

5.设置启动容器的用户

设置启动容器的用户,在生产环境中一般不建议使用root用户启动容器,所以,可以根据公司业务场景自定义启动容器的用户:

FROM centos:6
MAINTAINER binghe
ADD ./index.tar.gz /usr/share/nginx/html/
WORKDIR /usr/share/nginx/html
COPY webroot/ .
RUN useradd -m tomcat -u 1001
USER 1001

6.使用VOLUME创建容器可挂载点

FROM centos:6
MAINTAINER binghe
VOLUME /data

挂载目录到/data,注意:对于宿主机路径,要写绝对路径:

docker run -ti --rm -v `pwd` /web:/data centos:volume bash
相关文章
|
8月前
|
存储 安全 Java
Java大数据面试复习30天冲刺 - 日积月累,每日五题【Day03】——JavaSE
Java大数据面试复习30天冲刺 - 日积月累,每日五题【Day03】——JavaSE
75 0
|
8月前
|
安全 Java 大数据
Java大数据面试复习30天冲刺 - 日积月累,每日五题【Day01】——JavaSE
Java大数据面试复习30天冲刺 - 日积月累,每日五题【Day01】——JavaSE
81 0
|
8月前
|
Java 大数据
Java大数据面试复习30天冲刺 - 日积月累,每日五题【Day04】——JavaSE
Java大数据面试复习30天冲刺 - 日积月累,每日五题【Day04】——JavaSE
71 0
|
8月前
|
存储 安全 Java
Java大数据面试复习30天冲刺 - 日积月累,每日五题【Day02】——JavaSE
Java大数据面试复习30天冲刺 - 日积月累,每日五题【Day02】——JavaSE
66 0
|
数据挖掘
书单:分享我的读书笔记和最近阅读的几本好书
人最重要的是三个能力:①学习力-学习总结的能力;②输出力-逻辑思维和沟通表达的能力;③反思力-自省和修正的能力; 阅读、学习,让自己更加快乐,让自己有更多的可能性,让生命的意义有可能延展和突破。
826 2
书单:分享我的读书笔记和最近阅读的几本好书
|
前端开发 JavaScript 程序员
我们相约,这份学习指南请您收好。
我们相约,这份学习指南请您收好。
|
开发工具 git
热饭面试复习【git操作命令】完
热饭面试复习【git操作命令】完
热饭面试复习【git操作命令】完
100个⼩时整理的OKR实战笔记,拿⾛不谢!
PDF文件下载链接: https://pan.baidu.com/s/1wZpNMANjZyQYzB4CfUEr6w 提取码: krjv
100个⼩时整理的OKR实战笔记,拿⾛不谢!
|
Java 编译器 Linux
我肝了一个月,给你写出了这本Java开发手册。(一)
先来看一下本篇文章的思维导图吧,我会围绕下面这些内容进行讲解。内容很干,小伙伴们看完还希望不吝转发。(高清思维导图版本关注作者公众号 Java建设者 回复 Java666 获取,其他思维导图获取方式在文末)。
我肝了一个月,给你写出了这本Java开发手册。(一)
|
存储 Java 开发工具
我肝了一个月,给你写出了这本Java开发手册。(二)
先来看一下本篇文章的思维导图吧,我会围绕下面这些内容进行讲解。内容很干,小伙伴们看完还希望不吝转发。(高清思维导图版本关注作者公众号 Java建设者 回复 Java666 获取,其他思维导图获取方式在文末)。
我肝了一个月,给你写出了这本Java开发手册。(二)

热门文章

最新文章

下一篇
开通oss服务