『 云原生·Docker』Docker容器相关操作(二)

2年前其他教程17254
『 云原生·Docker』Docker容器相关操作(二) abcccccccccccccccode 于2022-10-16 21:10:50发布 543 收藏 40 分类专栏: 『云原生专栏』 文章标签: docker 云原生 docker容器 容器 kubernetes 原力计划 『云原生专栏』 专栏收录该内容 8 篇文章 14 订阅 订阅专栏 系列文章目录

本系列主要分为以下六大部分,正在更新中,尽请期待!

『 云原生·生之门』 『 云原生·前置知识』 『 云原生·Docker』 『 云原生·Kubernetes』 『 云原生·KubeSphere』 『 云原生·DevOps』

🚩点击关注本专栏


提示:已经更新的或正在更新的文章前面打勾了哈!

文章目录 系列文章目录前言一、导入和导出容器1.导出容器2.导入容器 二、查看容器1.查看容器详情2.查看容器进程3.查看统计信息 三、其他容器命令1.复制文件2.查看变更3.查看端口映射4.更新配置5.查看容器日志 总结


前言

容器是 Docker的另一个核心概念。

简单来说,容器是镜像的一个运行实例(Java中的对象与类)。所不同的是,镜像是静态的只读文件,而容器带有运行时需要的可写文件层,同时容器中的应用进程处于运行状态。

如果认为虚拟机是模拟运行的一整套操作系统(包括内核、应用运行态环境和其他系统环境)和跑在上面的应用。

那么 Docker容器就是独立运行的一个(或一组)应用,以及它们必需的运行环境。

接上一篇内容现在继续来总结一下Docker容器相关操作。

一、导入和导出容器

在很多时候我们需要将容器从一个系统迁移到另外一个系统,此时可以使用 Docker的导入和导 出功能,这也是 Docker自身提供的一个重要特性。

1.导出容器

导出容器可以导出一个已经创建的容器到一个文件,不管容器处于什么状态,可以使用docker export 命令。

我们可以通过-o选项来指定导出的tar文件名,也可以直接通过重定向来实现。

# 通过-o选项 docker export -o 容器快照名.tar $container_id #直接通过重定向 docker export $container_id >容器快照名.tar

导出后在本地可以看到有一个容器快照名.tar的容器快照,有了容器快照之后,我们可以在想要的时候随时导入。

2.导入容器

导出的文件又可以使用 docker import命令导入变成镜像。

如下将快照导入到镜像test/ubuntu:v1

docker import 容器快照名.tar test/ubuntu:v1 cat 容器快照名.tar | docker import - test/ubuntu:v1

实际上,既可以使用 docker load命令来导人镜像存储文件到本地镜像库,也可以使用docker import命令来导入一个容器快照到本地镜像库。但是他们是有一定区别的。

docker import:丢弃了所有的历史记录和元数据信息,仅保存容器当时的快照状态。在导入的时候可以重新制定标签等元数据信息。docker load:将保存完整记录,体积较大。 二、查看容器 1.查看容器详情

查看容器详情可以使用 docker container inspect $container_id 子命令,格式如下:

docker container inspect [OPTTONS] $container_id

査看某容器的具体信息,会以json格式返回包括容器ID、创建时间、路径、状态、镜像、配置等在内的各项信息。

2.查看容器进程

查看容器内进程可以使用 docker top $container_id 子命令,格式如下:

docker top [OPTIONS] $container_id [ CONTAINER..]

这个命令类似于Linux系统中的 top 命令,会打印出容器内的进程信息包括PID、用户、时间、命令等。

3.查看统计信息

查看统计信息可以使用docker stats子命令,格式如下:

docker stats [ OPTTONS] $container_id

这个命令会显示容器CPU、内存、存储、网络等使用情况的统计信息。

OPTIONS说明:

-a, -all:输出所有容器统计信息,默认仅在运行中;-format string:格式化输出信息;-no-stream:不持续输出,默认会自动更新持续实时结果;-no-trunc:不截断输出信息; 三、其他容器命令 1.复制文件

使用container cp 命令支持在容器和主机之间复制文件。

例如:将本地的路径下的文件 c1 复制到 test 容器的 /tmp 路径下:

docker cp c1 test:/tmp/ 2.查看变更

使用container diff 查看容器内文件系统的变更。

例如:查看test容器内的数据修改

docker container diff test 3.查看端口映射

使用container port 命令可以查看容器的端口映射情况。

例如:查看test容器的端口映射情况

docker container port test 4.更新配置

使用 container update 命令可以更新容器的一些运行时配置,主要是一些资源限制份额。

5.查看容器日志

使用docker logs可以获取容器的日志,格式如下:

docker logs [OPTIONS] $container_id

OPTIONS说明:

-f : 跟踪日志输出--since :显示某个开始时间的所有日志-t : 显示时间戳--tail :仅列出最新N条容器日志

例如:查看指定时间后的日志,只显示最后100行

$ docker logs -f -t --since="2020-02-08" --tail=50 CONTAINER_ID

看看本专栏文章有哪些吧!

本系列文章目录:

『 云原生·生之门』 『 云原生·前置知识』 『 云原生·Docker』 『 云原生·Kubernetes』 『 云原生·KubeSphere』 『 云原生·DevOps』

🚩点击关注本专栏

可以看出来本系列文章将会带你从-1到1的学习云原生的,一起加油吧!

总结

通过本篇内容的介绍和示例,相信大家已经掌握了对容器进行管理的各项操作命令。接下来我会继续对Docker进行总结介绍的,如果感兴趣可以关注一下本专栏!

相关文章

Rclone的介绍和使用

Rclone的介绍和使用...

【云原生 | 从零开始学Kubernetes】二十二、kubernetes持久化存储下

【云原生 | 从零开始学Kubernetes】二十二、kubernetes持久化存储下...

【云原生丨Kubernetes系列19】深入学习RBAC - 基于⻆⾊的访问控制

【云原生丨Kubernetes系列19】深入学习RBAC - 基于⻆⾊的访问控制...

【云原生丨K8s系列20】 RBAC 的配置⽅法演示(上):创建⼀个只能访问某个 namespace 的⽤户

【云原生丨K8s系列20】 RBAC 的配置⽅法演示(上):创建⼀个只能访问某个 namespace 的⽤户...

Linux-安装MySQL(详细教程)

Linux-安装MySQL(详细教程)...

软件测试面试八股文——基础篇

软件测试面试八股文——基础篇...