【Docker】常用帮忙、镜像、容器、其他命令合集(2)

【Docker】常用帮忙、镜像、容器、其他命令合集(2)

  • 博主有话说
  • 容器命令
    • 新建容器并启动
    • 列出所有的运行的容器
    • 退出容器
      • `docker run -it centos:7.0.1406 /bin/bash`指令解析
      • docker exec -it ... bash 、docker run -it ... bash、docker attach [容器] 的`exit`行为
    • 删除容器
    • 启动和停止容器的操作
  • 常用其他命令
    • 后台启动容器
    • 查看日志
    • 查看容器中进程信息
    • 查看镜像的元数据
    • 从容器内拷贝文件到主机上

博主有话说

紧随上期博文【Docker】常用帮忙、镜像、容器、其他命令合集(1),继续进行容器、其他两部分的命令记录。

容器命令

新建容器并启动

docker run [可选参数] image# 参数说明--name="Name"  	容器名字
-d 				后台方式运行
-it 			使用交互方式运行,进行容器查看内容
-p				指定容器的端口-p ip:主机端口:容器端口-p 主机端口:容器端口(常用)-p 容器端口
-P 				随机指定端口

在这里插入图片描述
关于-p 容器端口-P需要注意,如果有2条指令docker run -p 234 centosdocker run -P centos,它们是有区别的。

  1. -p 234 centos
  • Docker 会将容器的 234 端口映射到主机上随机选择的一个端口(通常是 32768 以上的高位端口)。
  1. -P centos(大写字母 P)
  • 这是自动端口映射,会将容器中所有暴露的端口(Dockerfile 中用 EXPOSE 声明的端口)自动映射到主机上随机选择的端口(通常是 32768 以上的高位端口)。
  • 例如:如果容器暴露了 80 和 443 端口,使用 -P 会自动将这两个端口分别映射到主机的两个随机端口

可以使用 docker ps 命令查看具体的端口映射关系,输出结果中的 PORTS 列会显示 主机端口->容器端口 的映射信息。

列出所有的运行的容器

docker ps 	列出当前正在运行的容器
-a 			列出当前正在运行的容器+带出历史运行过的容器
-n=?		显示最近创建的容器,? 是数字,代表想要显示的容器数量
-q 			只显示容器的编号

在这里插入图片描述

退出容器

exit    	直接容器停止并退出
Ctrl+P+Q 	容器不停止退出

在这里插入图片描述
可以看出用Ctrl+P+Q退出,容器是依旧在运行的。这里有2个要点,首先对docker run -it centos:7.0.1406 /bin/bash进行分析;其次介绍创建了容器后,退出再进入,exit的实际使用情况

docker run -it centos:7.0.1406 /bin/bash指令解析

  • docker run -it在之前介绍后,表示创建并启用一个容器,且是交互式终端;
  • centos:7.0.1406指定要使用的镜像;
  • /bin/bash是容器启动后执行的命令,这里是启动 Bash shell(Linux 命令行解释器),让你可以在容器内执行各种 Linux 命令。

docker exec -it … bash 、docker run -it … bash、docker attach [容器] 的exit行为

采用docker exec -it [容器名/ID] /bin/bash可以实现再次进入已创建的容器,进行操作,此时输入exit指令,理论上来说,应该是直接容器停止并退出,但是用docker ps查看,发现依旧是运行中。

在这里插入图片描述
采用docker run -it [容器名/ID] /bin/bash可以实现一个新容器的创建,此时输入exit指令,可以正常退出。
在这里插入图片描述
采用docker attach [容器]可以实现再次进入已创建的容器,进行操作,此时输入exit指令,可以正常退出。
在这里插入图片描述
这个是什么情况?

通过分析发现,原来docker exec -it [容器名/ID] /bin/bash是在已运行的容器中启动一个新的 Bash 进程(独立于容器的主进程),此时执行 exit 只会终止这个新启动的 Bash 进程,不会影响容器的主进程,因此容器会继续运行

对比不同进入方式的 exit 行为
在这里插入图片描述
当然,这个也是docker exec 的设计优势:允许在不影响容器主进程的情况下临时进入容器执行操作(如调试、查看日志等)

删除容器

docker rm 容器id   	#删除指定的容器,不能删除正在运行的容器,如果要强制删除 rm -f
docker rm -f $(docker ps -aq) #删除所有的容器
docker ps -a -q | xargs docker rm #删除所有的容器

docker ps -a -q | xargs docker rm

  • docker ps -a -q列出所有容器,且仅输出容器id,结果为一行一个id,便于批量处理;
  • xargs docker rmxargs 将前序输出按行拆成参数,逐个调用 docker rm
  • |把前一命令的输出作为后一命令的输入。

在这里插入图片描述

启动和停止容器的操作

docker start 容器id     		启动容器
docker restart 容器id			重启容器
docker stop 容器id				停止当前正在运行的容器
docker kill 容器id 				强制停止当前容器

在这里插入图片描述

常用其他命令

后台启动容器

docker run -d 镜像名

关于这个指令,在前面的容器命令里面有过介绍,在使用过程中,会发现一个很神奇的情况,启用mysql,结果发现停止了
在这里插入图片描述
原来,docker 容器使用后台运行,就必须要有一个前台进程,docker发现没有应用,就会自动停止

查看日志

docker logs -f -t --tail 容器id# 显示日志常用参数
-tf  			#显示日志
--tail number 	# 要显示日志条数

在这里插入图片描述
里面docker run -d centos:7.0.1406 /bin/sh -c "while true;do echo haitao;sleep 1;done"表示自己编写一段shell 脚本。

查看容器中进程信息

docker top 容器id

在这里插入图片描述

查看镜像的元数据

镜像元数据用于描述镜像的身份、构成、配置与属性,常见于容器镜像与云平台镜像,是查找、校验、兼容与自动化的基础。

docker inspect 容器id

在这里插入图片描述

从容器内拷贝文件到主机上

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

先容器中创建测试文件test.java,然后退出。
在这里插入图片描述
其次,通过docker cp c7f6730cb023:/home/test.java /home指令实现从容器中将文件移动到主机指定路径下。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/96605.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/96605.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

系统编程.9 线程

1.线程概述程序运行起来编程进程,进程由一个个线程构成。eg:没有启动的qq时一个程序,启动后登录qq,qq是一个进程,实际上进程什么都没做,只是提供了需要的资源,打开聊天框可以和别人进行通信&…

2.10组件间的通信

1.Vue组件的嵌套关系1.1认识组件的嵌套前面我们是将所有的逻辑放到一个 App.vue 中;在之前的案例中,我们只是创建了一个组件 App;如果我们一个应用程序所有的逻辑都放在一个组件中,那么这个组件就会变成非常的臃肿和难以维护&…

Mybatis-Plus学习笔记

目录 一、MyBatis-Plus简介 二、MyBatisPlus使用的基本流程: (1)引入MybatisPlus依赖,代替MyBatis依赖 (2)自定义Mapper继承BaseMapper ​编辑(3)在实体类上添加注解声明表信息…

Day22 用C语言编译应用程序

文章目录1. 保护操作系统5(harib19a)2. 帮助发现bug(harib19b)3. 强制结束应用程序(harib19c)4. 用C语言显示字符串(harib19e)5. 显示窗口(harib19f)1. 保护操…

简单学习HTML+CSS+JavaScript

一、HTML HTML被称为 超文本标记语言&#xff0c;是由一系列标签构成的语言。 下面介绍HTML中的标签&#xff1a; &#xff08;一&#xff09;HTML文件基本结构 <!DOCTYPE html><html><head><title>Document</title></head> <body&…

强化学习中重要性采样

PPO 中重要性采样 https://github.com/modelscope/ms-swift/blob/main/docs/source/Instruction/GRPO/GetStarted/GRPO.md乐&#xff0c;这个网页中是的groundtruth是错误的&#xff08;可能是为了防止抄袭&#xff09;。一些例子 0. 池塘养鱼的一个例子 想象一下&#xff0c;你…

《树与二叉树详解:概念、结构及应用》

目录 一. 树的概念和结构 1.1 树的基本概念 1.2 树的结构特点 二. 树的表示方法和实际运用 2.1 孩子 - 兄弟表示法&#xff08;Child-Sibling Representation&#xff09; 2.2 树的实际应用场景 三. 二叉树的概念 3.1 二叉树的核心定义 3.2 二叉树的基本分类 四. 二叉…

Qt/C++,windows多进程demo

1. 项目概述 最近研究了一下Qt/C框架下&#xff0c;windows版本的多进程编写方法&#xff0c;实现了一个小demo。下面详细介绍一下。 MultiProcessDemo是一个基于Qt框架实现的多进程应用程序示例&#xff0c;展示了如何在Windows平台上通过共享内存和事件机制实现进程间通信。该…

Android SystemServer 系列专题【篇五:UserController用户状态控制】

本篇接着SystemServer的启动流程&#xff0c;围绕SystemServer最后阶段关于主用户的启动和解锁的流程&#xff0c;作为切入点&#xff0c;来看看SystemServer是如何讲用户状态同步到所有的系统级服务中。ssm.onStartUserssm.onUnlockingUserssm.onUnlockedUser本篇先介绍UserCo…

推荐使用 pnpm 而不是 npm

npm 的局限性 磁盘空间浪费在 npm 早期版本中&#xff0c;每个项目的node_modules目录都会完整复制所有依赖包&#xff0c;即使多个项目依赖同一个包的相同版本&#xff0c;也会重复存储。这导致磁盘空间被大量占用&#xff0c;随着项目数量的增加&#xff0c;存储成本显著上升…

Transformer实战(18)——微调Transformer语言模型进行回归分析

Transformer实战&#xff08;18&#xff09;——微调Transformer语言模型进行回归分析0. 前言1. 回归模型2. 数据处理3. 模型构建与训练4. 模型推理小结系列链接0. 前言 在自然语言处理领域中&#xff0c;预训练 Transformer 模型不仅能胜任离散类别预测&#xff0c;也可用于连…

【Linux】【实战向】Linux 进程替换避坑指南:从理解 bash 阻塞等待,到亲手实现能执行 ls/cd 的 Shell

前言&#xff1a;欢迎各位光临本博客&#xff0c;这里小编带你直接手撕&#xff0c;文章并不复杂&#xff0c;愿诸君耐其心性&#xff0c;忘却杂尘&#xff0c;道有所长&#xff01;&#xff01;&#xff01;&#xff01; IF’Maxue&#xff1a;个人主页&#x1f525; 个人专栏…

linux常用命令 (3)——系统包管理

博客主页&#xff1a;christine-rr-CSDN博客 ​​​​​ ​​ hi&#xff0c;大家好&#xff0c;我是christine-rr ! 今天来分享一下linux常用命令——系统包管理 目录linux常用命令---系统包管理&#xff08;一&#xff09;Debian 系发行版&#xff08;Ubuntu、Debian、Linux …

YOLOv8 mac-intel芯片 部署指南

&#x1f680; 在 Jupyter Notebook 和 PyCharm 中使用 Conda 虚拟环境&#xff08;YOLOv8 部署指南&#xff0c;Python 3.9&#xff09; YOLOv8 是 Ultralytics 开源的最新目标检测模型&#xff0c;轻量高效&#xff0c;支持分类、检测、分割等多种任务。 在 Mac&#xff08;…

【高等数学】第十一章 曲线积分与曲面积分——第六节 高斯公式 通量与散度

上一节&#xff1a;【高等数学】第十一章 曲线积分与曲面积分——第五节 对坐标的曲面积分 总目录&#xff1a;【高等数学】 目录 文章目录1. 高斯公式2. 沿任意闭曲面的曲面积分为零的条件3. 通量与散度1. 高斯公式 设空间区域ΩΩΩ是由分片光滑的闭曲面ΣΣΣ所围成&#x…

IDEA试用过期,无法登录,重置方法

IDEA过期&#xff0c;重置方法: IntelliJ IDEA 2024.2.0.2 (亲测有效) 最新Idea重置办法!&#xff1a; 方法一&#xff1a; 1、删除C:\Users\{用户名}\AppData\Local\JetBrains\IntelliJIdea2024.2 下所有文件(注意&#xff1a;是子目录全部删除) 2、删除C:\Users\{用户名}\App…

创建用户自定义桥接网络并连接容器

1.创建用户自定义的 alpine-net 网络[roothost1 ~]# docker network create --driver bridge alpine-net 9f6d634e6bd7327163a9d83023e435da6d61bc6cf04c9d96001d1b64eefe4a712.列出 Docker 主机上的网络[roothost1 ~]# docker network ls NETWORK ID NAME DRIVER …

Vue3 + Vite + Element Plus web转为 Electron 应用,解决无法登录、隐藏自定义导航栏

如何在vue3 Vite Element Plus搭好的架构下转为 electron应用呢&#xff1f; https://www.electronjs.org/zh/docs/latest/官方文档 https://www.electronjs.org/zh/docs/latest/ 第一步&#xff1a;安装 electron相关依赖 npm install electron electron-builder concurr…

qt QAreaLegendMarker详解

1. 概述QAreaLegendMarker 是 Qt Charts 模块中的一部分&#xff0c;用于在图例&#xff08;Legend&#xff09;中表示 QAreaSeries 的标记。它负责显示区域图的图例项&#xff0c;通常包含区域颜色样例和对应的描述文字。图例标记和对应的区域图关联&#xff0c;显示区域的名称…

linux 函数 kstrtoul

kstrtoul 函数概述 kstrtoul 是 Linux 内核中的一个函数&#xff0c;用于将字符串转换为无符号长整型&#xff08;unsigned long&#xff09;。该函数定义在 <linux/kernel.h> 头文件中&#xff0c;常用于内核模块中解析用户空间传递的字符串参数。 函数原型 int kstrtou…