暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Docker常用命令

码间帝国 2021-06-21
262

前言

上一章讲解了Docker如何安装,以及配置镜像加速器。本章将详细介绍Docker的常用命令,加以实践相信你也可以很好的应用Docker

Docker命令

  1. 获取Docker版本
    docker --version
      2. 查看docker系统信息
      docker info
      3. Docker帮助文档
      docker --help
       # 查看具体某个命令的帮助
      docker command --help
      详情如下Commands:    
          attach     # 当前shell下attach 连接指定运行镜像    
          build      # 通过Dockerfile定制镜像    
          commit     # 提交当前容器为新的镜像     
          cp         # 从容器中拷贝指定文件或者目录到宿主机中    
          create     # 创建一个新的容器,同run效果一致,但不启动容器    
          diff       # 查看 docker容器变化    
          events     # 从docker服务获取容器实时事件    
          exec       # 在已存在的容器中运行命令    
          export     # 导出容器的内容流作为一个tar归档文件[对应import ]   
          history    # 展示一个镜像形成历史    
          images     # 列出系统当前镜像    
          import     # 从tar包中的内容创建一个新的文件系统映像[对应export]    
          info       # 显示系统相关信息    
          inspect    # 查看容器详细信息    
          kill       # kill 指定 docker 容器    
          load       # 从一个 tar 包中加载一个镜像[对应save]   
          save       # 保存一个镜像为一个 tar 包[对应 load]     
          login      # 注册或者登陆一个docker源服务器    
          logout     # 从当前 Docker registry 退出    
          logs       # 输出当前容器日志信息    
          port       # 查看映射端口对应的容器内部源端口    
          pause      # 暂停容器    
          ps         # 列出容器列表    
          pull       # 从docker镜像源服务器拉取指定镜像或者库镜像    
          push       # 推送指定镜像或者库镜像至docker源服务器    
          restart    # 重启运行的容器    
          rm         # 移除一个或者多个容器    
          rmi        # 移除一个或多个镜像[无容器使用该镜像才可删除,
                     # 否则需删除相关容器才可继续或 -f 强制删除]    
          run        # 创建一个新的容器并运行一个命令    
          search     # 在 docker hub 中搜索镜像    
          start      # 启动容器    
          stop       # 停止容器   
          tag        # 给源中镜像打标签    
          top        # 查看容器中运行的进程信息    
          unpause    # 取消暂停容器    
          version    # 查看 docker 版本号    
          wait       # 用于阻塞一个或多个容器停止,然后打印退出代

      镜像命令

      1. docker images
          列出本地主机上的镜像:
          -a:列出本地所有的镜像(含中间镜像层)
          -q:只显示镜像ID
          --digest:显示镜像的摘要信息
          --no-trunc:显示完整的镜像信息
      2. docker search
          查找某个镜像文件
          -s:列出不小于指定收藏的镜像
      3. docker rmi
          删除镜像
          -f 镜像ID:删除单个镜像
          -f 镜像名1:TAG 镜像名2:TAG:删除多个镜像
          -f $(docker images -qa):删除所有镜像

      容器命令

      1. docker run [options] image [command]

      # 新建并启动容器options:

          --name="容器新名字" # 为容器指定一个名称(未指定将生产默认名称)

          -d # 后台运行容器,并返回容器ID,也即启动守护式容器

          -i # 以交互模式运行容器,通常与-t同时使用

          -t # 为容器重新分配一个伪输入终端,通常与-i同时使用

          -P # 随机端口映射

          -p #指定端口映射,有以下四种格式   

              ip:hostPort:containerPort    

              ip::containerPort    

              hostPort::containerPort    

              containerPort

      2. docker ps
        #列出当前所有正在运行的容器
        options:
        -a # 列出当前所有正在运行的容器+历史上运行过的
          -l # 显示最近创建的容器
        -n # 显示最近n个创建的容器
        -q # 静默模式,只显示容器编号
          --no-trunc # 不要截断输出
        3.容器常用命令
          #启动容器
          docker start containerID
          #重启容器
          docker restart containerID
          #停止容器
          docker stop containerID
          #强制停止容器
          docker kill containerID
          #删除容器
          docker rm containerID
          #批量删除
          docker rm $(docker ps -qa)
          #查看容器内部细节(例如:数据卷位置等信息)
          docker inspect containerID
          #查看容器内运行的进程
          docker top containerID
          4.容器日志
            #常用于容器异常退出
            docker logs containerID
            -t #加入时间戳
            -f #跟随最新的日志打印
            --tail 数字 #显示最后多少条
            5. 容器命令交互
              docker exec -it containerID
              # eg:docker exec -it 83fbf4a00933 ls -l tmp
              docker attach containerID
              # 区别:
              # attach 直接进入容器启动终端命令,不会启动新的进程
              # exec 在容器中打开新的终端,并且可以启动新的进程

              6. 容器内拷贝文件到主机上

                  docker cp containerID:containerFile hostDir


              注意:

              docker run -d xxx:启动一个容器后,使用docker ps -a查看,会发现容器已经退出。因为docker容器后台运行必须有一个前台进程。容器运行的命令如果不是一直挂起的命令(例:top、tail),就会自动退出。
              解决方案:

              1)前台进程的方式运行

              docker run -d centos /bin/sh -c "while true;do echo hello docker;sleep 10;done

              2)交互式运行

              docker run -dit centos /bin/bash

              文章转载自码间帝国,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

              评论