Docker_命令

镜像命令

docker images 列出本地主机上的镜像

  • REPOSITORY:   镜像的仓库源
  • TAG:           镜像的标签 不同的版本
  • IMAGE ID:      镜像的ID
  • CREATE TIME:     镜像创建时间
  • SIZE:          镜像大小
  • 同一个仓库可以有多个tag,表示这个仓库源的不同个版本
  • 使用repository:tag  定义不同的镜像
  • 如果不指定tag,默认使用latest
  • 参数
    • -a:    本地所有的Image,包含中间映像层
    • -q:    只显示镜像ID
    • --digests: 显示镜像的摘要信息 sha265
    • --no-trunc: 显示完整的信息

Docker search

docker hub查找,但是从设置仓库镜像中下载

  • -s:star数:-s  30:  列出收藏数不小于指定值的镜像
  • --no-tunc:         显是完整的说明信息
  • ---automated:     只列出自动安装,构建

Docker pull Repository:Tag

拉取镜像

  • Tag 可以省略,默认Latest
  • 镜像分层,类似千层饼

Docker rmi Repository:Tag

删除本地镜像

  • Tag 默认 Lastest
  • -f :强制
  • 删除单个: docker rmi -f 镜像ID
  • 删除多个: docker rmi - f 镜像名1:tag 镜像名2:tag
  • 删除全部: docker rmi -f $(docker images -qa)

容器命令

容器 是一个简易版的Linux环境和运行在其中的应用程序

Docker run [option] image [command][ arg] 

端口映射容器内的端口映射到容器外的端口

  • -p:  指定端口容器内的端口
    • ip:hostPort:containerPort
    • ip::containerPort
    • hostPost:containerPort
    • containerPort
  • -P 随机映射

参数

  • --name="容器新名字":   为容器指定一个名称
  • -d:后台运行容器,并返回容器ID,即启动守护式容器
  • -i :以交互模式运行容器,通常与-t同时使用
  • -t:为容器重新分配一个伪输入终端,通常与-i同时使用

Docker ps

列出当前所有运行的容器

  • 默认显示当前正在运行的容器
  • name 没有指定的话,使用默认的
  • -a: 列出当前所有正在运行的+历史上运行过的
  • -l :显示最近创建的容器
  • -n:显示最近n个创建的容器
  • -q:静默模式,只显示容器编号
  • --no-trunc:不截断输出

启动容器

Docker start 容器ID或者容器名

重启容器 

Docker restart 容器ID或者容器名 

停止容器

属于正常的停止,会有一段时间的操作

Docker stop 容器ID或者容器名 

强制停止容器

立刻马上

Docker kill 容器ID或者容器名 

删除缓存中的容器

Docker rm  容器ID或者容器名

参数

  • -f: 强制删除,包括没有停止的容器
  • 一次性删除多个 docker rm -f ${docker ps -qa}

退出容器

  • exit: 容器停止退出
  • Ctrl+P+Q:容器挂起

守护式容器

Docker run -d 容器ID和容器名

 注意:Docker容器后台运行,就必须有一个前台进程

  ☆  Docker容器运行的命令如果不是那些一直挂起的命令top,tail;就会自动退出

  这是docker的机制问题

  以nginx为例,正常情况下,我们配置启动服务只需要启动响应的seriver即可,例如 service Nginx start;

  但是Nginx以后台进程模式运行,就导致dicker前台没有运行的应用,这样的容器后台启动后,会立即自杀,因为他觉得没事可做

最佳解决方案:将你要运行的的程序以前台进行的形式运行

查看 容器日志

Docker logs -f -t --tail 容器ID和容器名
  • t: 加入时间段
  • f: 跟随最新的日志打印
  • tail 数字: 显示最后几条

查看容器内部的进程

Docker top 容器ID和容器名

查看容器内部细节

Docker inspect  容器ID和容器名

进入正在运行的容器以命令行方式交互

  1. docker exec -it 容器ID bashshell
  2. docker attach 容器ID
  • attach: 直接进入容器启动命令的终端不会启动新的进程
  • exec: 在容器中打开新的终端,并且可以启动新的进程
    • 直接在容器后面加命令执行,不会记录到日志

从容器内拷贝数据到主机上

docker cp  容器ID:容器内路径  目的主机路径

 

原文地址:https://www.cnblogs.com/ZhaoLong-study/p/13586982.html