docker cheat sheet

reference

Basis

概念

  • 镜像 容器
    一个镜像可以创造很多个容器
    可以把容器看作是一个简易版的linux实例

  • 仓库 ( Repository )和仓库注册服务器(Registry)
    Registry上面放着很多个Repository ,每个Repository 又放了很多镜像,每个镜像有不同的标签

  • 仓库又分为公开仓库(Public)和私有仓库(Private)
    最大的公开仓库的是Docker Hub( hub.docker.com)
    不过一般用的是国内的 阿里和网易之类的

基本命令

  • service docker restart 如果是通过软件包安装,可以用Upstart查看情况

    虚拟机启动是分种级的 docker是秒级的

  • docker deamon cmd 操作服务端

  • docker cmd 操作客户端

    • docker run hello-world # 运行hello-world镜像的一个容器

      现在本地找 没有的话 会主动去仓库拉

DockerFile

  • WORKDIR 指定pwd并可多次切换 (命令中-w参数可覆盖)
  • ENV 设定环境变量(命令中-e参数可补充环境变量)
  • CMD 与 ENTRYPOINT
    • 都只能有一行,都建议用数组形式来实现,否则默认在命令前面加上bash -c,容易出现意料之外的状况
    • 都可以被docker run 的外部命令中的参数/命令覆盖
      • docker run -ti ubuntu:12.04 /bin/bash

        这里的/bin/bash 覆盖的就是CMD

      • docker run -ti ubuntu:12.04 --entrypoint=["/bin/bash"] 覆盖的就是ENTRYPOINT

      • 当CMD和ENTRYPOINT同时存在的时候的用法:ENTRYPOINT在前,CMD在后且只添加默认参数

          ENTRYPOINT ["/usr/sbin/nginx"]
      	CMD ["-h"]
      
  • COPY、ADD区别
    • 后者参数可以为网址,且add 压缩文件到目标路径的时候会自动提取
  • ARG指令 设置可选/必选参数
  • VOLUME
    • 是否会修改宿主机文件,可以参考这个blog,写的很全面(从理由到措施)
      • 推荐挂载目录,不要挂载文件。挂载目录不会出现宿主机文件更新,而容器中文件没有更新。
      • 或者echo 修改文件,而不是使用 vim 或者 vi
  • LABEL作用

镜像

看到refer8:44
docker run hello-world # 运行hello-world镜像的一个容器
现在本地找 没有的话 会主动去仓库拉

  • docker images # 查看本地有什么镜像 默认tag是latest
    -a 显示内嵌的所有层次
    -q 只显示id
    –digest 显示摘要
    –no-trunc 没有截取 显示完整信息

猜你喜欢

转载自blog.csdn.net/Hesy_H/article/details/103606733