docker学习笔记(2)

构建镜像

  • 使用docker commit命令(不推荐)
  • 使用docker build命令和 Dockerfile文件(通过dockerfile构建镜像具备重复性、透明性和幂等性)

docker build相关命令

  • 保证构建过程不会使用缓存

    docker build --no-cache -t="仓库名/镜像名"

Dockerfile指令

  • CMD 指令指定一个容器启动时要运行的命令,而 Dockerfile中 RUN指令用于指定镜像被构建时要运行的指令。CMD命令类似使用 docker run 启动容器时指定要运行的命令十分类似(docker run 命令会覆盖CMD指令)

    CMD ["/bin/bash","-l"]
    
  • ENTRYPOINT 指令类似于CMD,区别在于CMD指令会被docker run指令覆盖,而ENTRYPOINT 不会。实际上,docker run命令行中指定的任何参数都会被当做参数再次传递给ENTRYPOINT 指令中的命令

    ENTRYPOINT ["/usr/sbin/nginx"]
    
    同时ENTRYPOINT  和 CMD 能够配合使用例如
    ENTRYPOINT ["/usr/sbin/nginx"]
    CMD ["-h"]
    
    1.我们可以指定-g "daemon off",那么CMD失效,NGINX会前台启动
    2.如果docker run 不指定参数,那么cmd 的参数  -h 会传递给ENTRYPOINT 指令
    
  • WORKDIR 指令用于创建容器时,在容器内部设置一个工作目录,ENTRYPOINT 、CMD 指定的程序都会在该目录下执行

  • ENV 在镜像构建过程中设置环境变量

    ENV RVM_PATH /home/rvm
    
  • USER 镜像以什么用户运行

  • VOLUME: 该指令用于向基于镜像创建的容器添加卷。一个卷是可以存在于一个或者多个容器内的特定目录。这个目录可以绕过联合文件系统,提供数据共享和数据进行持久化的能力

    VOLUME ["/opt/project"]
    
  • ADD指令:用于将构建环境下的文件和目录复制到镜像中(还有归档文件解压功能)

    ADD a.lic /opt/a.lic        将构建目录下的a 复制到 镜像中的/opt/a.lic
    
  • COPY 类似ADD,但没有文件提取和解压的功能

  • LABEL 用于为Docker镜像添加元数据

  • STOPSIGNAL 用于设置停止容器发送什么系统调用信号给容器

  • ARG 用于定义在 docker build命令是传递给构建运行的变量

    ARG webapp_user=user
    ARG build
    
    docker build --build-age build=1234 .....
    
  • ONBUILD :未镜像添加触发器,当一个镜像被其他镜像当做基础镜像,该镜像中的触发器会被执行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值