Docker Cli要点汇总

Docker Cli要点汇总

本文主要介绍一些docker命令行使用时的一些小要点,并不包括对docker基础理论的解释。

镜像管理

  1. 镜像名称

    • 格式: [Docker Registry地址:[端口号]/]仓库名[:标签]
    • Docker 镜像仓库地址:地址的格式一般是 <域名/IP>[:端口号];默认地址是 Docker Hub。
    • 仓库名是两段式名称,即<用户名>/<软件名>。对于 Docker Hub,如果不给出用户名,则默认为library,也就是官方镜像。
  2. 悬挂镜像 => 既没有仓库名也没有标签的镜像,此种情况一般在新旧镜像同名,旧镜像名被取消而导致。一般来说,悬挂镜像已经失去了存在价值,可以直接删除。

    • 查看指令:docker image ls -f dangling=true
    • 删除指令:docker image prune
  3. Dockerfile定制镜像

    • COPY => 复制文件,源文件的各种元数据都会保留。比如读、写、执行权限、文件变更时间等。也可以通过--chown=<user>:<group>来改变文件的所属用户以及所属组。
    • ADD => 更高级的复制文件,ADD和COPY基本一样,只是多了部分功能。比如,支持URL路径;如果 <源路径> 为一个tar压缩文件的话,压缩格式为gzip, bzip2 以及xz的情况下,ADD 指令将会自动解压缩这个压缩文件到<目标路径>去。
    • CMD => 容器启动命令,有shell和exec两种格式,分别为CMD <命令>CMD ["可执行文件", "参数1", "参数2"...],一般情况下推荐使用exec方式。
    • ENTRYPOINT => 入口点,当指定ENTRYPOINT时,CMD的含义也就发生了变化,不再是直接的运行其命令,而是将CMD的内容作为参数传给ENTRYPOINT指令。
    • ENV => 设置环境变量,有两种格式为,ENV <key> <value>ENV <key1>=<value1> <key2>=<value2>
    • ARG => 构建参数,构建参数和ENV的效果一样,都是设置环境变量。所不同的是,ARG所设置的构建环境的环境变量,在将来容器运行时是不会存在这些环境变量的。但是不应该使用ARG保存密码之类的信息,因为docker history还是可以看到所有值。
    • VOLUME => 定义匿名卷,有两种格式VOLUME ["<路径1>", "<路径2>"...]VOLUME <路径>
    • EXPOSE => 暴露端口,格式为EXPOSE <端口1> [<端口2>...]。EXPOSE指令是声明运行时容器提供服务端口,这只是一个声明,在运行时并不会因为这个声明应用就会开启这个端口的服务。在Dockerfile中写入这样的声明有两个好处,一个是帮助镜像使用者理解这个镜像服务的守护端口,以方便配置映射;另一个用处则是在运行时使用随机端口映射时,也就是 docker run -P时,会自动随机映射EXPOSE的端口。
    • WORKDIR => 指定工作目录,格式WORKDIR <工作目录路径>
    • USER => 指定当前用户,格式USER <用户名>[:<用户组>]USER指令和WORKDIR相似,都是改变环境状态并影响以后的层。WORKDIR是改变工作目录,USER则是改变之后层的执行RUN, CMD以及ENTRYPOINT这类命令的身份。
    • HEALTHCHECK => 健康检查,格式HEALTHCHECK [选项] CMD <命令>:设置检查容器健康状况的命令HEALTHCHECK NONE:如果基础镜像有健康检查指令,使用这行可以屏蔽掉其健康检查指令
    • ONBUILD => 预执行,ONBUILD 是一个特殊的指令,它后面跟的是其它指令,比如 RUN, COPY 等,而这些指令,在当前镜像构建时并不会被执行。只有当以当前镜像为基础镜像,去构建下一级镜像的时候才会被执行。
    • FROM => 指定基础镜像。
    • RUN => 执行命令,shell格式RUN <命令>和exec格式RUN ["可执行文件", "参数1", "参数2"]

其他

  1. docker-machine和docker-engine的区别?

    对于docker-machine和docker-engine可以简单的理解为,docker-machine是docker-engine的管理工具,例如可以安装一个或多个docker-engine至本机或虚拟机中,当然也可以是远程的。

  2. docker-compose有什么用?

    docker-compose负责对docker容器集群的快速编排,定位于定义和运行多个docker容器的应用。docker-compose可以通过一个docker-compose.yml实现一组相关联的容器的定义和执行。

  3. docker swarm是什么?

    docker swarm是docker集群管理和编排工具。

转载于:https://my.oschina.net/taodf/blog/3061222

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值