Docker相关知识点(二) [Docker常见命令]

Docker
话接上文,下面将介绍Docker常用命令

  • yum mackcache fast:更新软件包索引

  • yum -y install docker-ce docker-ce-cli containerd.io:安装DOCKER CE

  • 卸载Docker步骤(命令):

    • systemctl stop docker:停止docker容器
    • yum remove docker-ce docker-ce-cli containerd.io:卸载DOCKER CE
    • rm -rf /var/lib/docker:删除Docker缓存
    • rm -rf /var/lib/containerd:删除Docker容器实例
  • docker images:查看docker本地镜像文件

  • docker search 镜像名:在远程仓库中搜索是否有该镜像名的镜像

  • docker pull 镜像名:从远程仓库中拉取该镜像名的镜像

  • docker system df: 查看镜像/容器/数据卷所占的空间

  • docker rmi 镜像名:删除镜像

  • 退出容器命令

    • exit:退出容器,容器停止
    • 快捷键ctrl+p+q:退出容器,容器不停止
  • docker start 容器ID或容器名:启动已经停止运行的容器

  • docker restart 容器ID或容器名:重启容器

  • docker stop 容器ID或容器名:停止容器

  • docker kill 容器Id或容器名:强制停止容器

  • 删除已经停止的容器

    • docker rm -f 容器ID或容器名:强制删除正在运行的容器,不加-f,会仅删除已经停止的容器
    • docker -rm $(docker -aq):删除所有已经停止的容器
  • docker ps:查看docker容器中已经启动的进程:

    • -a:查看所有容器进程,包括启动和未启动的
    • -n num: 查看前num条进程,可与-a组合使用
  • docker inspect 容器ID:查看该容器内部细节

  • docker cp 容器ID:容器内路径 目的主机路径:将容器内文件拷贝到主机上

  • 重新进入容器:

    • docker exec -it 容器ID bashShell:启动交互式容器)(伪终端)
    • docker attach 容器ID:重新进入容器中
    • 两者区别
      • attach直接进入容器启动命令的终端,不会启动新的进程(用exit退出,会导致容器的停止)
      • exec 是在容器中打开新的终端,并且可以启动新的进程用exit退出,不会导致容器的停止。
      • 推荐使用exec命令,因为退出容器终端,不会导致容器的停止
  • docker ps:列出所有正在运行的docker容器进程

    • -a:列出所有(包括已经停止的容器进程
    • -l:显示最近创建的容器
    • -n num:显示最近创建的num个容器
    • -q静默模式,只显示容器编号
  • 使用命令导入和导出整个容器重点

    • export导出容器的内容留作为一个tar归档文件【对应import命令】
    • import 从tar包中的内容茶u你更加爱你一个新的文件系统再导入为镜像 【队形export命令】
    • 格式
      • docker export 容器ID > 文件名.tar
      • cat 文件名.tar | doker import - 镜像用户/镜像名:版本号
  • docker的虚悬镜像

    • 仓库名、标签名都为<none>的镜像,俗称虚悬镜像dangling image
  • run命令

  • 实例化镜像的对象

    • 例如:docker run hello-world:实例化hello-world镜像

    • 命令规范:docker run -it centos /bin/bash

  • 参数说明

    • –name [new name]:给容器指定新名字,若没指定,系统将随机生成
    • -P:随机端口映射,大P
    • -p:指定端口映射,小p
    • -t:为容器重新分配一个为输入终端,通常与-i搭配使用
    • -i:以交互模式运行容器,通常情况下与-t搭配使用【-i与-t同时使用也称启动交互式容器(前段有伪终端,等待输入)
    • -d:以守护模式启动容器,也称为**启动后台守护式进程**
    • centos:centos镜像
    • /bin/bash:放在镜像后面的命令,如果我们希望启动后有一个交互式命令窗口,就可以在镜像后添加该命令,
    • 退出终端:exit

后台守护式进程【重点

  • docker run -d centos:在后台启动容器

    问题:执行上述命令后,使用docker ps -a命令查看,会发现容器已经退出?

    分析:

    • 说明:Docker容器后台运行,就必须有一个前提进程。

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

      这个是docker的机制问题,比如你的web容器,我们以nginx为例,正常情况下,我们配置启动服务只需要启动响应的service即可。例如service nginx start;但是这样做,nginx为后台进程模式运行,就导致了docker前台没有运行的应用,这样的容器后台启动后,会立即自杀,因为它觉得自己已经无事可做了。

      所以,最佳的解决方案是:将你要运行的程序以前台进程的形式运行,常见就是命令行模式,表示我还有交互操作,别中断

注意:

  • 大部分情况下,我们希望docker的服务是在后台运行的,我们可以通过-d指定容器的后台运行模式

小结

  • 前台交互式进程与后台守护式进程
    • 前台守护式进程前端有伪终端,用户可以输入命令,计算机执行
    • 后台交互式进程没有前台伪终端,容器在后台运行,很多情况下,我们希望docker的服务在后台运行,我们就可以先指定服务以前台交互式进程的方式运行,这样,服务就不会自杀。如果仅仅使用后台守护式容器方式运行,服务觉得自己无事可做,会自杀,也就是服务没启动起来,建议:当我们每启动一个容器的时候,就使用docker ps命令查看容器是否真正启动起来了。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值