使用 Dockerfile 定制镜像

Dockerfile 是一个文本文件, 其内包含了一条条的 指令(Instruction), 每一条指令构建一层, 因此每一条指令的内容, 就是描述该层应当如何构建。

项目1:
在一个空白目录中, 建立一个文本文件, 并命名为 Dockerfile

mkdir mynginx
cd mynginx
touch Dockerfile

其内容为:

FROM nginx
RUN echo '<h1>hello nginx</h1>' /usr/share/nginx/html/index.html

说明:

  • FROM 指定基础镜像
    所谓定制镜像, 那一定是以一个镜像为基础, 在其上进行定制。 就像我们之前运行了一个 nginx 镜像的容器, 再进行修改一样, 基础镜像是必须指定的。 而FROM 就是指定 基础镜像, 因此一个 Dockerfile 中 FROM 是必备的指令,并且必须是第一条指令。

  • RUN 执行命令
    RUN 指令是用来执行命令行命令的。 由于命令行的强大能力, RUN 指令在定制镜像时是最常用的指令之一。常用的两种用法如下:
    shell 格式: RUN <命令> , 就像直接在命令行中输入的命令一样。 刚才写的Dockerfile 中的 RUN 指令就是这种格式。

    RUN echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index
    .html
    

    exec 格式: RUN [“可执行文件”, “参数1”, “参数2”] , 这更像是函数调用中的格式。

    FROM debian:stretch
    RUN apt-get update
    RUN apt-get install -y gcc libc6-dev make wget
    RUN wget -O redis.tar.gz "http://download.redis.io/releases/redi
    s-5.0.3.tar.gz"
    RUN mkdir -p /usr/src/redis
    RUN tar -xzf redis.tar.gz -C /usr/src/redis --strip-components=1
    RUN make -C /usr/src/redis
    RUN make -C /usr/src/redis install
    
    FROM debian:stretch
    RUN buildDeps='gcc libc6-dev make wget' \
    && apt-get update \
    && apt-get install -y $buildDeps \
    && wget -O redis.tar.gz "http://download.redis.io/releases/r
    edis-5.0.3.tar.gz" \
    && mkdir -p /usr/src/redis \
    && tar -xzf redis.tar.gz -C /usr/src/redis --strip-component
    s=1 \
    && make -C /usr/src/redis \
    && make -C /usr/src/redis install \
    && rm -rf /var/lib/apt/lists/* \
    && rm redis.tar.gz \
    && rm -r /usr/src/redis \
    && apt-get purge -y --auto-remove $buildDeps
    

构建镜像

docker build -t nginx:v3 .
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值