Docker基础(容器命令)

@TOC

六、容器命令

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:容器内路径 目的主机路径 //将容器内的文件拷贝到宿主机上
    将容器内的文件拷贝到宿主机上

    附:
    命令脑图


Author: Lelege
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint polocy. If reproduced, please indicate source Lelege !
评论
 Previous
Docker镜像原理 Docker镜像原理
@TOC 1.Docker镜像是什么?镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,包含运行某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件。 1.1联合文件系统(UnionFS)Uni
2022-05-26
Next 
Docker基础(常用命令) Docker基础(常用命令)
五、常用命令5.1帮助命令 docker version //验证:是否安装成功 docker info //对docker安装信息的描述 docker --help //docker命令提示(可以查询docker的所有操作命令) 5.
2022-05-26
  TOC