【云原生】Docker中容器管理常用所有命令
1.docker 容器创建流程
2.容器运行本质
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
创建容器基本选项:--name:为容器命名
-i:交互式创建容器
-d:后台创建容器
-t:为容器分配伪终端
Docker 容器存在的意义就是为了运行容器中的应用,对外提供服务,所以启动容器的目的就是启动运行该容器中的应用。容器中的应用运行完毕后,容器就会自动终止。所以如果不想让容器启动后立即终止运行,则就需要使容器应用不能立即结束。通常采用的方式有两种,使应用处于与用户交互的状态或等待状态。
3.docker run
从镜像创建并运行一个新容器
格式:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
创建一个centos7.9镜像
[root@localhost ~]# docker run -it --name centos7 centos:7.9.2009
[root@4c392a1a06d7 /]#
#前台退出容器 ctrl+p+q
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4c392a1a06d7 centos:7.9.2009 "/bin/bash" 11 seconds ago Up 10 seconds centos7
前台退出容器快捷键 ctrl+p+q 容器在后台运行
4.docker exec
在正在运行的容器中执行命令
格式:
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
选项:
--detach,-d:分离模式:在后台执行命令
--detach-keys:覆盖分离容器的键序列
--env -e:设置环境变量
--env-file:读写一个环境变量文件
--interactive,-i:保持STDIN打开,即使没有连接
--privileged:赋予命令扩展权限
--tty,-t:分配一个伪终端
--user,-u;用户名或UID(格式:< name| UID >[:<group|gid>])
--workdir,-w:容器内的工作目录
进入centos7容器中
[root@localhost ~]# docker exec -it -w /tmp centos7 /bin/bash
[root@4c392a1a06d7 tmp]# pwd
/tmp
docker attach
将本地标准输入、输出和错误流附加到正在运行的容器
格式:
docker attach [OPTIONS] CONTAINER
docker exec 与 docker attach的区别?
-
docke exec会新建一个进程来访问容器进程,一般与-it选项联合使用,一般使用exit命令退出i并终止当前进程
-
docker attach不会新建进程,而是进入容器原有的进程,根据情况可以使用exit或者ctrl+p+q来进行退出容器
5.docker ps
列表容器
格式:
docker ps [OPTIONS]
选项:
-a,-all:显示所有容器(默认显示正在运行) -f:根据提供的条件过滤输出 --latest,-l:显示最新创建的容器(包括所有状态) --no-trunc:不要截断输出 --quiet,-q:只显示容器id --size,-s:显示总文件大小
注意:docker ps不支持容器间的文件复制传递
6.docker top
显示容器的运行进程
格式:
docker top CONTAINER [ps OPTIONS]
7.docker 容器管理
启动
docker start [OPTIONS] CONTAINER [CONTAINER...]
停止
docker stop [OPTIONS] CONTAINER [CONTAINER...]
#强制停止
docker kill [OPTIONS] CONTAINER [CONTAINER...]
重启
docker restart [OPTIONS] CONTAINER [CONTAINER...]
暂停
docker pause CONTAINER [CONTAINER...]
取消暂停
docker unpause CONTAINER [CONTAINER...]
8.docker logs
获取容器日志
格式:
docker logs [OPTIONS] CONTAINER
选项:
--details:显示日志提供的额外详细信息 --follow,-f:跟踪日志输出 --since:显示从时间戳开始的日志(例如2013-01-02T13:23:37Z)或相对日志(例如42m的42minutes) --tail,-n:从日志末尾开始显示的行数 -t:显示日志时间戳 --until:在时间戳之前显示日志(例如2013-01-02T13:23:37Z)或相对显示(例如42m表示42minutes)
查看5秒之前的日志内容的前3行
[root@localhost ~]# docker logs --until 5s -n 3 nginx1
2023/07/12 10:04:58 [notice] 1#1: start worker process 32
2023/07/12 10:04:58 [notice] 1#1: start worker process 33
2023/07/12 10:04:58 [notice] 1#1: start worker process 34
9.docker cp
在容器和本地文件系统之间复制文件/文件夹
格式:
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
选项:
-a:归档模式(复制所有uid/gid信息) --quiet,-q:在复制过程中抑制进度输出。如果没有终端连接,则自动抑制进度输出
10.docker rm
移除一个或多个容器
格式:
docker rm [OPTIONS] CONTAINER [CONTAINER...]
选项:
--force,-f:强制移除正在运行的容器(使用SIGKILL) --link,-l:移除指定的链接 --volumes,-v:移除与容器关联的匿名卷
11.docker commit
根据容器的更改创建一个新映像
格式:
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
选项:
--author,-a:作者(如John Hannibal Smith <hannibal@a-team.com>) --change,-c:在创建的镜像上应用Dockerfile指令 --message,-m:提交消息 --pause,-p:在提交期间暂停容器
创建一个centos7镜像,进行安装net-tools工具,然后进行打包成镜像
[root@localhost ~]# docker run -itd --name centos centos:7.9.2009
1d1725c19cbe9c6e119f055827a316dd351eb4adeae291a878a39418312daed5
[root@localhost ~]# docker exec -it centos /bin/bash
[root@1d1725c19cbe /]# yum -y install net-tools
进行打包
[root@localhost ~]# docker commit -a 'conquerbug@163.com' centos centos7:net-tools
sha256:0db0f584d14de19f7b377fa385ea43e7abcb57223f4a51c690c5b1628e882f70
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos7 net-tools 0db0f584d14d 6 seconds ago 418MB
然后,再基于当前镜像创建容器即可
12.docker导出/导入
docker export
将容器文件系统导出为tar归档文件
格式:
docker export [OPTIONS] CONTAINER
选项:
--output,-o:写入文件,而不是标准输出
将当前容器进行打包
[root@localhost ~]# docker export -o centos.tar centos
[root@localhost ~]# ls
centos.tar Dockerfile httpd-2.4.57.tar.gz image.tar my.cnf original-ks.cfg
docker import
从压缩包中导入内容以创建文件系统映像
格式:
docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
选项:
--change,-c:在创建的镜像上应用Dockerfile指令 --message,-m:为导入的图像设置提交消息 --platform:如果服务器支持多平台,请设置平台
将刚刚打包的容器进行还原
[root@localhost ~]# docker import centos.tar centos:test
sha256:6bc2adb97476b7b797a5a129c68afcba4ce05ab487812727c7049003f2a1049e
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos test 6bc2adb97476 4 seconds ago 394MB
13.docker镜像/容器导出和导入的区别
export与save
-
export作用于容器,save作用于镜像,但它们导出的结果都是为tar文件
-
export一次只能对一个容器进行导出,save一次可以对多个镜像进行导出
-
export只是对当前容器的文件系统快照进行导出,其会丢失原镜像的所有历史记录与元数据信息,save则是保存了原镜像的完整记录。
import与load
-
import导入的是容器包,load加载的是镜像包,但最终都会恢复为镜像
-
import恢复为的镜像已包含当前镜像一层,load恢复的镜像与原镜像的分层是完全相同的。
-
import恢复的镜像就是新构建的镜像,与原镜像的imageID不同,load恢复的镜像与原镜像是同一个镜像,即imageID相同。
-
import可以为导入的镜像指定从<repository>与<tag>,load加载的镜像不能指定<repository>与<tag>,与原镜像的相同
14.docker system
管理码头工人
1.docker system df
查看docker磁盘使用情况
格式:
docker system df [OPTIONS]
查看当前系统的docker磁盘使用情况
[root@localhost ~]# docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 9 2 1.504GB 1.435GB (95%)
Containers 2 1 213.9MB 213.9MB (100%)
Local Volumes 3 1 6.174MB 1.501MB (24%)
Build Cache 19 0 465.4MB 465.4MB
选项:
--format:使用自定义模板格式化输出:` table `:使用
docker system events [OPTIONS]
列标题以表格格式打印输出(默认)` table template `:使用给定的Go模板以表格格式打印输出` json `:使用给定的Go模板打印输出。有关使用模板格式化输出的更多信息,请参阅https://docs.docker.com/go/formatting/ --verbose,-v:显示空间使用的详细信息
2.docker system events
从服务器获取实时事件
格式:
docker system events [OPTIONS]
选项:
--filter,-f:根据提供的条件过滤输出 --format:使用给定的Go模板格式化输出 --since:显示自时间戳以来创建的所有事件 --until:流事件直到这个时间戳
打开两个终端
终端1
docker system events
终端2
[root@localhost ~]# docker stop test
test
查看终端1
[root@localhost ~]# docker system events
2023-07-15T17:04:37.334836848+08:00 container kill d1a032d521d4e4a02cc7ea497d6d83ac137d4d03e838f4db01e0fe903b2cc290 (image=progrium/consul, name=great_easley, signal=15)
2023-07-15T17:04:41.428854481+08:00 network disconnect 462ad2de000e7aae527224ae21c66e15aac0e68ed45f96b65528e22e272851fa (container=d1a032d521d4e4a02cc7ea497d6d83ac137d4d03e838f4db01e0fe903b2cc290, name=bridge, type=bridge)
2023-07-15T17:04:41.430294298+08:00 volume unmount 0e452a14a460fdc4cfa0b2644761923359a263fe9abeca5fd1952927231ca0a7 (container=d1a032d521d4e4a02cc7ea497d6d83ac137d4d03e838f4db01e0fe903b2cc290, driver=local)
2023-07-15T17:04:41.430357838+08:00 container stop d1a032d521d4e4a02cc7ea497d6d83ac137d4d03e838f4db01e0fe903b2cc290 (image=progrium/consul, name=great_easley)
3.docker system info
显示系统范围的信息
格式:
docker system info [OPTIONS]
与docker info相同
4.docker system prune
移除未使用的数据
格式:
docker system prune [OPTIONS]
选项:
--all,-a:删除所有未使用的图片,而不仅仅是悬挂的图片 --filter:提供过滤器值(例如label=<key>=<value>) --force,-f:不提示确认 --volumes:删除卷
删除当前docker服务器所有没有使用的容器和空名空标签的镜像和没有使用的网络
[root@localhost ~]# docker system prune
WARNING! This will remove:- all stopped containers- all networks not used by at least one container- all dangling images- all dangling build cache
翻译: 警告!这将删除: -所有停止的容器 —所有未被至少一个容器使用的网络 -所有悬挂的图像 -所有悬挂的构建缓存 你确定要继续吗?[y / N] Are you sure you want to continue? [y/N] y Deleted Containers: 1d1725c19cbe9c6e119f055827a316dd351eb4adeae291a878a39418312daed5 d1a032d521d4e4a02cc7ea497d6d83ac137d4d03e838f4db01e0fe903b2cc290 Deleted Networks: mynet1 mac_net1 Deleted build cache objects: kutjwzwfdu28eldqlwo07uax7 0p5xfeo29k8ojauchfzf97kp0 a9puvqnewb05luw84rnanr2lh y6mdonbx0pvs2trx7xd97738u kj09ara8y3v3b6f50xtzie6lv itk7ujtbdy4c2nirz68e2ivck 2a7d9sfcsnvl9owzau11l0jrq oe2ukyl2cpguwqjm0kddg5tcx 4fom9yi9x5i125uvb96d29ext tdwcwf0eze1lrvgherr4sxrs5 9hffla6qush85p7jhf89l56ek Total reclaimed space: 679.3MB
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos test 6bc2adb97476 25 hours ago 394MB
centos7 net-tools 0db0f584d14d 26 hours ago 418MB
busybox latest beae173ccac6 18 months ago 1.24MB
nginx latest 605c77e624dd 18 months ago 141MB
voltest latest 3af6982c965f 18 months ago 141MB
redis latest 7614ae9453d1 19 months ago 113MB
mysql 5.7 c20987f18b13 19 months ago 448MB
centos 7.9.2009 eeb6ee3f44bd 22 months ago 204MB
progrium/consul latest 09ea64205e55 8 years ago 69.4MB
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@localhost ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
462ad2de000e bridge bridge local
c598e7da9321 host host local
36391f761fe6 none null local
15.docker create
创建一个新容器
它与run类似,但是它唯一的区别就是,create只创建容器不运行,但是docker run是创建容器并运行
格式:
docker create [OPTIONS] IMAGE [COMMAND] [ARG...zz
相关文章:

【云原生】Docker中容器管理常用所有命令
1.docker 容器创建流程 2.容器运行本质 docker run [OPTIONS] IMAGE [COMMAND] [ARG...] 创建容器基本选项:--name:为容器命名 -i:交互式创建容器 -d:后台创建容器 -t:为容器分配伪终端 Docker 容器存在的意义就是为…...
Flutter video_player点击重新播放
视频播放完成之后,暂停视频,点击重新播放 import package:flutter/material.dart; import package:video_player/video_player.dart;class ListViewItemWidget extends StatefulWidget{overrideState createState() {return _ListViewItemWidgetState()…...
CSS3属性之text-overflow:ellipsis
语法: text-overflow:clip | ellipsis 默认值为clip 不显示省略标记 clip:当前对象内文本溢出时不显示省略标记,而是将溢出部分裁剪。 ellipsis:当对象内文本一处时显示省略标记(...)。 一、常见的单行文本溢出显示省略写法: text-overflow: ellipsis; …...

【深度学习_TensorFlow】梯度下降
写在前面 一直不太理解梯度下降算法是什么意思,今天我们就解开它神秘的面纱 写在中间 线性回归方程 如果要求出一条直线,我们只需知道直线上的两个不重合的点,就可以通过解方程组来求出直线 但是,如果我们选取的这两个点不在直…...
C++使用 auto 自动推断类型
C使用 auto 自动推断类型 在有些情况下, 根据赋给变量的初值, 很容易知道其类型。 例如, 如果将变量的初值设置成了 true,就可推断其类型为 bool。如果您使用的编译器支持 C11 和更高版本,可不显式地指定变量的类型&a…...
【前端面试手撕题】call、bind、new、freeze、浅拷贝
FED11 _call函数 描述 请补全JavaScript代码,要求实现Function.call函数的功能且该新函数命名为"_call"。 <!DOCTYPE html> <html><head><meta charset"UTF-8"><style>/* 填写样式 */</style> </head…...

MacBook Pro 16 M1 Max 升级 macOS Ventura 13.5 兼容测评
今天给大家带来了 MacBook Pro 16 M1 Max 升级 macOS Ventura 13.5 兼容 100 挑战赛 的视频,现在充电头再以文章的形式呈现给大家,让大家更清楚、直白的了解这款笔记本在升级系统后的兼容性如何。 MacBook Pro 16 M1 Max 配置了 140W 的 MagSafe 充电口&…...

实现5*5正方形网格x轴和y轴显示对应数值组件封装
实现5*5正方形网格x轴和y轴显示对应数值组件封装 需求:按5*5的正方形网格,根据目标数据的x和y轴值显示对应的文字,实现效果图如下:(当前目标数值:x2,y2) 代码如下: <…...
基于Matlab实现图像压缩技术(附上完整源码+图像+程序运行说明)
介绍 图像压缩是一种将图像数据压缩以减小文件大小的技术。在数字图像处理中,图像通常以像素阵列的形式表示。对于大型图像文件,传输和存储成本可能很高,因此图像压缩技术变得至关重要。在本文中,我们将介绍一种使用Matlab实现图…...
棒球联盟对于市场发展规划·棒球1号位
棒球联盟对于市场发展规划 1. 棒球联盟市场发展背景分析 在深入探讨棒球联盟市场发展背景之前,我们首先要明确,棒球,作为一种全球流行的体育项目,其在市场上的发展具有相当悠久的历史。棒球文化的起源可以追溯到上个世纪初&#…...

ansible控制主机和受控主机之间免密及提权案例
目录 案例描述 环境准备 案例一--免密远程控制主机 效果展示: 解决方案 1.添加主机 2.通过ssh-key生成密钥对 3.生成ssh-copy-id 4.验证 案例二-----免密普通用户提权 效果展示 解决方案 1.使用普通用户,与案例一 一样,进行发送密钥…...

flink1.17 eventWindow不要配置processTrigger
理论上可以eventtime processtime混用,但是下面代码测试发现bug,输入一条数据会一直输出. flink github无法提bug/问题. apache jira账户新建后竟然flink又需要一个账户,放弃 bug复现操作 idea运行代码后 往source kafka发送一条数据 a,1,1690304400000 可以看到无限输出…...

Python导出SqlServerl数据字典为excel
sql代码 SELECTtableName D.name ,tableIntroduce isnull(F.value, ),sort A.colorder,fieldName A.name,catogary B.name,bytes A.Length,lengths COLUMNPROPERTY(A.id, A.name, PRECISION),scales isnull(COLUMNPROPERTY(A.id, A.name, Scale), 0),isOrNotNull Cas…...
PB:DDE服务器函数
1、GetCommandDDE() 功 能:得到DDE客户应用发送的命令。 语 法:GetCommandDDE ( string ) 参 数:string:string类型的变量,用于保存DDE客户应用发送的命令。 返回值:Integer。函数执行成功时返回1,发生错误时返回-1。如果string参数的值为NULL, GetCommandDDE()…...
awk经典实战、正则表达式
目录 1.筛选给定时间范围内的日志 2.统计独立IP 案列 需求 代码 运行结果 3.根据某字段去重 案例 运行结果 4.正则表达式 1)认识正则 2)匹配字符 3)匹配次数 4)位置锚定:定位出现的位置 5)分组…...
Python脚本-时间盲注
BlindBool_get import requests from optparse import OptionParser import threading#存放变量 DBName "" DBTables [] DBColumns [] DBData {} flag You are in #设置重连次数以及将连接改为短连接 #防止因为HTTP连接数过多导致的MAX retries exceeded with …...

面试总结-Redis篇章(十)——Redis哨兵模式、集群脑裂
Redis哨兵模式、集群脑裂 哨兵模式哨兵的作用服务状态监控 Redis集群(哨兵模式)脑裂解决办法 哨兵模式 为了保证Redis的高可用,Redis提供了哨兵模式 哨兵的作用 服务状态监控 Redis集群(哨兵模式)脑裂 假设由于网络原…...

el-table那些事
el-table那些事 获取el-table所有勾选的行数据 用于记录工作和日常学习遇到的坑,需求。 vue3element-plusts 获取el-table所有勾选的行数据 1、需要先声明一个ref变量,并赋值给el-table 2、通过el-table提供的getSelectionRows()函数获取选中的"行…...
kubernetes(一)
文章目录 1. k8s架构2. k8s集群搭建 1. k8s架构 2. k8s集群搭建...

计算机网络(6) --- https协议
计算机网络(5) --- http协议_哈里沃克的博客-CSDN博客http协议https://blog.csdn.net/m0_63488627/article/details/132089130?spm1001.2014.3001.5501 目录 1.HTTPS的出现 1.HTTPS协议介绍 2.补充概念 1.加密 1.解释 2.原因 3.加密方式 对称加…...

label-studio的使用教程(导入本地路径)
文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...

CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...

Mac软件卸载指南,简单易懂!
刚和Adobe分手,它却总在Library里给你写"回忆录"?卸载的Final Cut Pro像电子幽灵般阴魂不散?总是会有残留文件,别慌!这份Mac软件卸载指南,将用最硬核的方式教你"数字分手术"࿰…...

C# 类和继承(抽象类)
抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...
【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分
一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计,提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合:各模块职责清晰,便于独立开发…...

处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的
修改bug思路: 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑:async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...

windows系统MySQL安装文档
概览:本文讨论了MySQL的安装、使用过程中涉及的解压、配置、初始化、注册服务、启动、修改密码、登录、退出以及卸载等相关内容,为学习者提供全面的操作指导。关键要点包括: 解压 :下载完成后解压压缩包,得到MySQL 8.…...
LCTF液晶可调谐滤波器在多光谱相机捕捉无人机目标检测中的作用
中达瑞和自2005年成立以来,一直在光谱成像领域深度钻研和发展,始终致力于研发高性能、高可靠性的光谱成像相机,为科研院校提供更优的产品和服务。在《低空背景下无人机目标的光谱特征研究及目标检测应用》这篇论文中提到中达瑞和 LCTF 作为多…...

Python训练营-Day26-函数专题1:函数定义与参数
题目1:计算圆的面积 任务: 编写一个名为 calculate_circle_area 的函数,该函数接收圆的半径 radius 作为参数,并返回圆的面积。圆的面积 π * radius (可以使用 math.pi 作为 π 的值)要求:函数接收一个位置参数 radi…...