Docker将要被取代否?

2023-10-30 16:46:16 浏览数 (1)

按照计划,应该分享云原生模块的相关知识,主要就是目前广泛使用的容器运行引擎docker和容器编排平台k8s。今天就docker展开,还有了解下最近呼声比较高的容器引擎podman。豆荚男?

docker基础操作

详细的基础操作之前有写过,这里就简要分享用来复习。再推荐下docker的学习网站,因为人家做的更专业值得我们学习。

常用命令:

1. 镜像管理

- docker images:列出本地镜像

- docker search:搜索镜像

- docker pull:拉取镜像

- docker rmi:删除镜像

2. 容器管理

- docker ps:列出运行中的容器

- docker ps -a:列出所有容器

- docker run:运行容器

- docker start/stop/restart:启动/停止/重启容器

- docker rm:删除容器

- docker kill:强制停止容器

- docker inspect:查看容器详细信息

- docker logs:查看容器日志

- docker attach/exec:进入运行中的容器

- docker cp:从容器中拷贝文件/目录到本地

3. 容器rootfs命令

容器的rootfs目录存放在/var/lib/docker/overlay2下(storage driver为overlay2时),常用命令有:

- ls /var/lib/docker/overlay2:查看所有容器 layers

- cd /var/lib/docker/overlay2/容器ID:进入容器层

- ls:查看容器内文件结构

- cat文件:查看容器内文件内容

这些命令在调试容器的时候会很有帮助。

4. 网络管理

- docker network ls:列出网络

- docker network inspect:查看网络详细信息

- docker network create:创建网络

- docker network connect/disconnect:连接/断开容器和网络

- docker network rm:删除无用网络

5. 存储管理

- docker volume ls:列出数据卷

- docker volume inspect:查看数据卷详细信息

- docker volume create:创建数据卷

- docker volume rm:删除数据卷

6. Dockerfile管理

- docker build:从Dockerfile构建镜像

- docker history:查看镜像构建历史

- docker tag:为镜像打标签

7. 其他命令

- docker info:查看Docker系统信息

- docker version:查看Docker版本

- docker stats:查看容器资源使用统计信息

- docker system df:查看Docker磁盘使用情况

- docker system prune:清理无用数据

- etc.

推荐学习:

1. 官方文档

这个没的说,不管使用什么产品,官方肯定是最准确最及时的

代码语言:javascript复制
https://docs.docker.com/

2. play with docker

强烈推荐!真的很好用,有免费时长让你练习,练习基础命令够够的了。

官网地址:

代码语言:javascript复制
https://labs.play-with-docker.com/

3. docker入门到实践

可以说是相当详细了,从什么是docker,为什么用docker以及安装使用,基本面面俱到了。

代码语言:javascript复制
https://docker-practice.github.io/zh-cn/

这里其他也有很好的学习资源就不一一推荐了,掌握基础命令并实践,学会docker真的很轻松。

再分享一些关于docker的运维小技巧:

1. 查看Docker系统信息

使用docker info可以查看Docker系统的详细信息,包括:

- 存储驱动(Storage Driver)

- 镜像数(Images)

- 容器数(Containers)

- 运行容器数(Running Containers)

- 主机OS(Operating System)

- 内核版本(Kernel Version)

命令:

代码语言:javascript复制
docker info

2. 查看Docker磁盘使用情况

Docker的磁盘使用情况,包括镜像、容器和数据卷所占用的空间。

命令:

代码语言:javascript复制
docker system df

3. 查看Docker内存和CPU使用

Docker Desktop和Docker Engine都提供了查看内存和CPU使用的功能。

在Docker Engine上,可以安装dockmon来查看内存和CPU metrics:

代码语言:javascript复制
docker run -d --name dockmon --restart=always -v /var/run/docker.sock:/var/run/docker.sock ukhomeofficedigital/dockmon:v0.7.1

然后访问http://localhost:8080 就可以查看Docker主机的metrics。

4. 查看Docker日志

Docker的日志存放在/var/lib/docker/containers下的json文件中,可以通过docker logs命令查看container的日志。

也可以开启json-file或syslog日志驱动,并指定日志文件位置。Docker会将容器的日志输出到该文件中,方便查看。

5. 监控Docker资源

可以使用第三方监控工具来监控Docker的各项资源使用情况和性能指标,如:

- Cadvisor:监控CPU、内存、文件系统和网络资源

- Prometheus:时序数据库,可以收集cadvisor等exporter的数据并存储

- Grafana:将Prometheus数据进行可视化,方便查看各metrics

- Node Exporter:采集Docker host metrics

6. 镜像以及容器备份恢复

1. docker save

docker save可以将镜像另存为归档文件,例如:

代码语言:javascript复制
docker save -o ubuntu.tar ub

untu

这会将ubuntu镜像导出为ubuntu.tar文件。

2. docker load

docker load可以将归档文件(通常是.tar格式)载入到本地镜像仓库,例如:

代码语言:javascript复制
docker load -i ubuntu.tar

这会将ubuntu.tar文件加载为本地镜像,名称同原镜像(ubuntu)。

3. docker export

docker export可以将容器中运行的应用导出为归档文件,例如:

代码语言:javascript复制
docker export -o nginx.tar nginx-container

这会将nginx-container容器导出为nginx.tar文件。

4. docker import

docker import可以将归档文件导入为镜像,例如:

代码语言:javascript复制
docker import nginx.tar nginx-image

这会将nginx.tar文件导入为nginx-image镜像。

5. docker commit

docker commit可以将容器状态保存为镜像,例如:

代码语言:javascript复制
  docker commit nginx-container nginx-image

这会将nginx-container容器的状态提交为nginx-image镜像。

通过以上几个命令,可以实现Docker镜像与容器的备份、迁移与恢复:

- docker save/load:实现镜像的导出/导入,用于镜像备份与迁移

- docker export/import:实现容器应用的导出/导入,用于容器备份与迁移

- docker commit:可以保存容器状态为镜像,实现容器备份

掌握了以上这些,基础使用就没问题了。

podman

最近podman还是比较火,我看官网,最近桌面版本1.1.0发布了,我这就安装使用了下,详细的使用情况后面分享,就先介绍下大致情况。

更新说明:

代码语言:javascript复制
https://podman-desktop.io/blog/podman-desktop-release-1.1

podman是一款容器引擎,与Docker类似,可以在Linux系统上运行OCI兼容的容器。

Podman与Docker的主要区别是:

1. Podman不需要守护进程(daemon),Docker需要启动Docker daemon后才能使用。

2. Podman的容器默认使用rootless模式运行,不需要root权限。Docker的容器默认需要root权限。

3. Podman使用Libpod作为其容器引擎,而Docker使用自己的引擎。

4. Podman可以兼容Docker CLI命令,方便Docker用户迁移。但也有自己的podman命令。

Podman的优点主要是:

1. 无需守护进程,更轻量级

2. rootless模式,安全性更高

3. 兼容Docker,降低用户迁移成本

兼容性:

支持平台:

Linux、macOS、Windows

兼容 Docker API、Lima、Kind、Openshift Local、Podman Machine

安装方式:

代码语言:javascript复制
https://podman-desktop.io/downloads

今天的分享就到这了,祝学习生活顺利!

0 人点赞