Docker基础(容器命令)

六、容器命令

6.1新建并启动容器(启动交互式容器)
  • docker run [OPTIONS] image [COMMAND][ARG...] //新建并启动容器
    新建并启动容器

ORTIONS说明(常用):有的是一个减号有的是两个减号

参数 功能
- -name 容器的新名字:为容器指定一个新的名称
-d 后台运行容器,并返回容器ID,也即启动守护式容器
-i 以交互模式运行容器,通常与-t同时使用
-t 为容器重新分配一个伪输入终端,通常与-i同时使用
-P 随机端口映射
-p 指定端口映射

指定端口映射有四种形式

  • ip:hostPort:containerPort
  • ip::containerPort
  • hostPort:containerPort
  • containerPort
6.2列出当前所有正在运行的容器
  • docker ps [OPTIONS] //列出当前所有正在运行的所有容器
    查看当前所有正在运行的容器

OPTIONS说明(常用):

参数 功能
-a 列出当前所有正在运行的容器 + 历史上运行过的容器当前所有正在运行的容器 + 历史上运行过的容器
-l 显示最近创建的容器 显示最近创建的容器
-n 显示最近n个创建的容器显示最近创建的2个容器
-q 静默模式,只显示容器编号,只返回当前正在运行的容器ID只返回当前正在运行的容器ID
- -no-trunc 不截断输出
6.3退出容器(两种方式)
6.3.1 容器停止退出
  • exit //容器停止退出
    容器停止退出

docker ps 查看运行的容器
发现没有正在运行的,说明centos容器已经退出

6.3.2 直接退出(不关闭)
  • ctrl + p + q //容器退出但不关闭
    退出但不关闭容器

证明退出容器但未关闭容器在这里插入图片描述

6.4启动容器
6.4.1启动容器

docker start 容器ID //启动上述退出的容器
启动直接退出的容器

6.4.2重启容器
  • docker restart + 容器ID //重新容器【运行时间开始重新计时】
    重启容器
6.5停止容器(两种形式)
6.5.1 停止容器(温柔)【像摁冰箱的电源开关】
  • docker stop + 容器ID/容器名称 //停止当前正在运行的容器
    停止当前正在运行的容器
6.5.2 强制关闭容器 【像直接把电源关闭冰箱】
  • docker kill + 容器ID/容器名称 // 强制关闭当前正在运行的容器
    强制关闭容器
6.6删除 已停止 容器
6.6.1删除单个已停止的容器
  • docker rm + 容器ID //删除单个已停止的容器
    删除多个容器

如果当前容器正在运行
使用 docker rm -f + 容器ID //强制删除正在运行的容器

6.6.2 一次性删除多个容器
  • docker rm -f $(docker ps -aq) //批量删除
  • docker ps -aq | xargs docker rm //效果与上面的命令一致,不再赘述验证
    批量删除当前全部容器

七.容器命令(重要)

7.1启动守护式容器
  • docker run -d + 容器名 //启动守护式容器
    启动守护式容器

使用docker run -d centos
问题:然后docker ps -a 进行查看,发现容器已经退出
重点: Docker容器后台运行,就必须有一个前台进程。容器运行的命令如果不是那些一直挂起的命令(比如运行top、tail),就是会自动退出的。
这个是docker运行机制的问题,比如说你的web容器,我们以ngnix为例,正常情况下,我们配置启动服务只需要启动响应的service即可。例:service nginx start,但是这样做nginx为 后台进程模式运行,就会导致docker前台没有运行的应用,这样的容器后台启动后,就会立即自杀因为他觉得他无事可做了 所以最佳的解决方案是 将你运行的程序以前台进程的形式运行

7.2查看容器日志
  • docker logs -f -t --tail + 容器ID //查看容器的运行日志
参数 功能
-t 加入时间戳
-f 跟随最新的日志打印
–tail 数字显示最后多少条记录
7.3查看容器内运行的进程

-docker top + 容器ID //查看当前容器中运行的进程
查看当前容器内运行的进程

7.4 查看容器内部细节
  • docker inspect + 容器ID //查看容器内部细节
    查看容器内部细节
7.5 进入正在运行的容器并以命令交互
  • docker attach + 容器ID //直接进入正在运行的容器内部

直接进入容器启动命令的终端,不会启动新的进程

进入正在运行的容器中
-docker exec -t + 容器ID //进入正在运行的容器内部查看内容,没有真正意义上的进入内部

是在容器中打开新的终端,并且可以启动新的进程

进入内部查看根目录信息

区别:

  1. attach命令进入容器后,exit退出容器会导致容器停止运行;
    exec命令进入容器后,exit退出容器,容器不会停止
  2. attach 直接进入容器启动命令的终端,不会启动新的进程
    exec 是在容器中打开新的终端,并且可以启动新的进程
7.6 从容器内拷贝文件到主机上
  • docker cp + 容器ID:容器内路径 目的主机路径 //将容器内的文件拷贝到宿主机上
    将容器内的文件拷贝到宿主机上

附:
命令脑图

猜你喜欢

转载自blog.csdn.net/qq_43775034/article/details/108897111