Dockerfile基础命令

Dockerfile基本命令

FROM - 基于基准镜像

  • FROM centos # 基于centos:latest
  • FROM scratch # 不依赖任何基准镜像base image
  • FROM tomcat:9.0.22-jdk8-openjdk

LABEL & MAINTAINER - 说明信息

  • MAINTAINER xxxx.com
    • 机构&个人ID
  • LABEL version=“1.0”
  • LABEL description=“这是描述信息”

WORKDIR - 设置工作目录

  • WORKDIR /usr/local
  • WORKDIR /usr/local/newdir # 自动创建
  • 尽量使用绝对路径

ADD & COPY - 复制文件

  • ADD hello / # 复制到根目录
  • ADD test.tar.gz / # 添加到根目录并解压
  • ADD除了复制,还具备添加远程文件功能

ENV - 设置环境常量

  • ENV JAVA_HOME /usr/local/openjdk8
  • RUN ${JAVA_HOME}/bin/java -jar test.jar
  • 尽量使用环境常量,可提高程序维护性

Dockerfile执行指令

RUN & CMD & ENTRYPOINT

  • RUN:在Build构建时执行命令

    • RUN yum install -y vim # Shell 命令格式
      • 会生成一个子shell进程
    • RUN [“yum”, “install”, “-y”, “vim”] # Exec命令格式
      • 会用Exec进程替换当前进程,并且保持PID不变
      • 执行完毕,直接退出,并不会退回到之前的进程环境
      • 推荐使用Exec命令格式执行命令
  • ENTRYPOINT:容器启动时执行的命令

    • Dockerfile中只有最后一个ENTRYPOINT会被执行
    • ENTRYPOINT[“ps”] # 推荐使用Exec格式
  • CMD:容器启动后执行默认的命令或参数

    • CMD用于设置默认执行的命令
    • 如果Dockerfile中出现多个CMD,则只有最后一个被执行
    • 如容器启动时附加指令,则CMD被忽略
    • CMD [“ps”, “-ef”] # 推荐使用Exec格式
  • 举例

FROM centos
RUN ["echo", "image building!!!"]
ENTRYPOINT ["ps"]
CMD ["-ef"]

Dockerfile实战-构建Redis镜像

FROM centos
RUN ["yum", "install", "-y", "gcc", "gcc-c++", "net-tools", "make"]
WORKDIR /usr/local
ADD redis-4.0.14.tar.gz .
WORKDIR /usr/local/redis-4.0.14/src
RUN make && make install
WORKDIR /usr/local/redis-4.0.14
ADD redis-7000.conf .
EXPOSE 7000
CMD ["redis-server", "redis-7000.conf"]
  • 构建镜像
    • docker build -t python_id.com/docker-redis .
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值