• docker一些基础的命令


    –name=“容器新名字” ,为指定容器指定一个名字

    -d:后台运行容器并返回一个容器ID,即启动守护式容器(后台运行)

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

    -t:为容器重新分配一个伪输入终端,通常与-i同时使用,即启动交互式容器(前台有伪终端,等待交互)

    -P:随机端口映射

    -p:指定端口映射
    在这里插入图片描述
    -a:列出当前所有正在运行的容器+历史运行过的

    -l:显示最近创建的容器

    -n:显示最近n个创建的容器

    -q:静默模式,只显示容器编号

    退出容器:有两种方式:

    exit:run进去容器,exit退出,容器停止

    ctrl+p+q:run进去容器,ctrl+p+q退出,容器不停止

    这是因为 Ctrl+Q+P 组合键不会发送任何命令或信号给容器,它只是从容器的终端中分离(detach)你的当前会话。这样,你可以退出容器的终端,但容器仍然在后台继续运行。

    这种行为通常适用于某些情况,例如当你在容器中执行某个长时间运行的任务时,你希望退出终端但保持容器继续运行。你可以随时重新附加(attach)到容器的终端,以查看任务的输出或进行其他操作。

    需要注意的是,使用Ctrl+Q+P组合键前提是在非交互式的容器终端中使用,如果你正在使用交互式终端(如通过docker run -it启动容器),则Ctrl+C组合键将会中断(stop)容器。只有在非交互式终端中使用Ctrl+Q+P才会分离你的会话而不停止容器。

    容器启动相关

    启动已经停止的容器:docker start 容器id或者容器名

    重启容器:docker restart容器id或者容器名

    停止容器:docker stop容器id或者容器名

    强制停止容器:docker kill 容器id或者容器名

    删除已经停止的容器:docker rm 容器id

    • 重要:有镜像才能创建容器,这是根本前提(下载一个Redis镜像演示)

      • 前台交互式启动:docker run -it redis
        • 不建议使用前台交互式启动
        • 终端被锁定:当你使用交互式启动 Redis,并且 Redis 进程在前台运行时,该终端将一直被 Redis 所占用,你无法执行其他操作或者关闭终端。
        • 容器无法自动化:如果你希望将 Redis 放在容器中,并通过自动化工具(如 Docker Compose 或编排工具)进行管理,那么使用前台交互式启动将变得非常困难。自动化工具通常需要通过后台启动 Redis 进程,并记录容器的运行状态、日志等信息。
      • 后台守护式启动:docker run -d redis
    • 启动守护式容器(后台服务器)

    • 查看容器日志:docker logs 容器id

    • 查看容器内运行的进程:docker top 容器id

    • 查看容器内部细节:docker inspect 容器id

    • 进入正在运行的容器并以命令交互

      • docker exec -it 容器id bashshell
      • 重新进入docker attach 容器id
      • 上述两者的区别
        • attach直接进入容器启动命令的终端,不会启动新的进程,用exit退出,会导致容器的停止
        • exec是在容器中打开新的终端,并且可以启动新的进程,用exit退出,不会导致容器的停止
      • 推荐使用docker exec命令,应为退出容器终端,不会导致容器的停止
    • 从容器内拷贝文件到主机上

    • 导入和导出容器

      • export导出容器的内容流作为一个tar归档文件[对应import命令]
      • import从tar包中的内容创建一个新的文件系统再导入为镜像[对应为export]
      • 案例
        • docker export容器id>文件名.tar
        • cat文件名.tar|docker import-镜像用户/镜像名:镜像版本号
  • 相关阅读:
    Mac上配置 Android 环境变量
    云原生安全性:保护现代应用免受威胁
    el-table中合并表头的同时,合并列固定(解决办法)+表头合并受fixed的影响合并不成功(解决办法)
    Gitee 实战配置
    Android Radio实战——静音操作(十九)
    Web3与Web3.0: Web3指的是去中心化和基于区块链的网络,Web3.0指的是链接或语义网络。
    【生成式网络】入门篇(二):GAN的 代码和结果记录
    【自动化营销】跨境电商高效进行WhatsApp营销技巧!
    凭借SpringBoot整合Neo4j,我理清了《雷神》中错综复杂的人物关系
    【高等数学】微分中值定理
  • 原文地址:https://blog.csdn.net/weixin_49750432/article/details/133078888