【云原生】Docker中容器管理常用所有命令,888道Linux运维高级面试题

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注运维)
img

正文

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


1. export作用于容器,save作用于镜像,但它们导出的结果都是为tar文件
2. export一次只能对一个容器进行导出,save一次可以对多个镜像进行导出
3. export只是对当前容器的文件系统快照进行导出,其会丢失原镜像的所有历史记录与元数据信息,save则是保存了原镜像的完整记录。


###### import与load


1. import导入的是容器包,load加载的是镜像包,但最终都会恢复为镜像
2. import恢复为的镜像已包含当前镜像一层,load恢复的镜像与原镜像的分层是完全相同的。
3. import恢复的镜像就是新构建的镜像,与原镜像的imageID不同,load恢复的镜像与原镜像是同一个镜像,即imageID相同。
4. 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==)
–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

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注运维)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
ou want to continue? [y/N] y

Deleted Containers:
1d1725c19cbe9c6e119f055827a316dd351eb4adeae291a878a39418312daed5
d1a032d521d4e4a02cc7ea497d6d83ac137d4d03e838f4db01e0fe903b2cc290

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注运维)
[外链图片转存中…(img-DS4mSMda-1713200274972)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 7
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 什么是DockerDocker是一个开源的应用程序容器引擎,可以让开发者打包他们的应用程序以及依赖包到一个可移植的容器,然后发布到任何流行的Linux机器上,也可以实现虚拟化。 2. Docker常用命令有哪些? - docker run:运行一个容器 - docker ps:列出所有正在运行的容器 - docker images:列出所有本地的镜像 - docker build:从Dockerfile构建一个镜像 - docker push:将镜像推送到仓库 - docker pull:从仓库拉取镜像 - docker stop:停止一个或多个容器 - docker rm:删除一个或多个容器 - docker rmi:删除一个或多个镜像 3. 如何使用Docker构建镜像? 使用Dockerfile文件构建,Dockerfile是一个包含Docker构建指令的文本文件,通过运行docker build命令可以根据Dockerfile文件构建镜像。 4. 如何将容器的数据持久化? 使用数据卷(Volumes)或者绑定挂载(Bind Mounts)的方式可以将容器的数据持久化。 5. 如何将Docker容器连接到网络? 可以使用docker network命令创建一个Docker网络,然后将容器连接到这个网络。 6. 如何在Docker容器内部执行命令? 使用docker exec命令可以在Docker容器内部执行命令。 7. 如何查看Docker容器的日志? 使用docker logs命令可以查看Docker容器的日志。 8. 如何启动一个交互式的Docker容器? 使用docker run命令时加上-i和-t选项可以启动一个交互式的Docker容器。 9. 如何将本地文件拷贝到Docker容器? 使用docker cp命令可以将本地文件拷贝到Docker容器。 10. 如何将Docker容器的文件拷贝到本地? 使用docker cp命令可以将Docker容器的文件拷贝到本地。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值