zoukankan      html  css  js  c++  java
  • 制作dockerfile文件使用的命令

    dockerfile制作镜像步骤和手动制作一个样, 区别在于dockerfile中使用命令代替手动操作

    # 描述性的信息
    FROM centos:targe(或FROM centos@序列号)    ----> 指定基于哪个镜像
    
    RUN cd
    /data/xx && mkdir xx.file ----> run后执行bash相关命令, 例: RUN ["mysqld","--initialize-insecure","--user=mysql","...."] ---->执行非bash命令的写法
    EXPOSE
    22 ----> 用于暴露端口, 多个端口时写多行即可. EXPOSE 80 COPY 文件名 /目录名 ----> 拷贝dockerfile同级文件到镜像的指定目录, 如文件名处是个目录, 则会把该目录下所有文件都cp到指定目录
    ADD file.tar.gz
    /目录名 ----> 拷贝dkf同级文件到镜像目录, 并可自动解压.tar压缩的文件, 如果目录不存在其也会自动创建(add也可用于普通无压缩文件) ADD url /目录名 ----> 也能从网络下载文件放到指定目录, 但不会自动处理压缩文件
    VOLUME [
    "目录1", "目录2"] ----> 制作镜像时不执行, 生成容器时自动关联目录1和2, 不能用来关联宿主机和容器
    WORKDIR
    ----> 镜像中的专用cd命令, 全局唯一, 跳到某个目录后就会一直在该目录, 常使用相对路径跳转, 不好用, 不如用run命令执行cd好使 ENV ---->用于在dockfile中i当以变量, a="目录" 调用语法: ${a}或$a
    CMD [
    "/usr/sbin/ssh","-D"] ----> 该命令在制作镜像的时候不会执行, 而是在使用镜像启动容器时才执行 例: CMD ["/bin/bash","bash脚本路径"]
    ENTRYPOINT
    ----> 作用及用法同上面的cmd, 但是如果在起容器时, 命令后指定要执行的命令则会覆盖cmd的任务, 而使用entrypoint指定则不会被覆盖 如: docker run -d 容器id /bin/bash ----> 则/bin/bash任务会覆盖cmd的任务 注: entrypoint高级用法能用来传参数, 具体用法不详
    # 使用dockerfile生成镜像 docker image build
    -t "镜像名" dockerfile路径

     dockerfile文件格式架构:

    # 描述性的信息
    FROM xxxx
    
    RUN xxxx
    
    EXPOSE 22
    EXPOSE 80
    
    CMD ["/bin/bash", "脚本路径"]
  • 相关阅读:
    微软职位内部推荐-Senior Software Engineer-DUT
    微软职位内部推荐-Senior PM
    面试题:打印蛇形二维数组
    微软职位内部推荐-Principal Software Eng Mgr
    微软职位内部推荐-Senior SDE
    微软职位内部推荐-Senior Software Engineer II-Search
    微软职位内部推荐-Software Engineer II-Search
    分布式锁的实现方式
    Java集合框架实现自定义排序
    Redis的缓存策略和主键失效机制
  • 原文地址:https://www.cnblogs.com/quzq/p/13472169.html
Copyright © 2011-2022 走看看