为了账号安全,请及时绑定邮箱和手机立即绑定

/docker入门:核心概念简介

Docker 就像一个神奇的工具箱,专为开发者设计。它让开发者能够构建、分发和管理他们的应用程序,这些应用程序被封装在小巧便携的盒子中,称为容器。容器就像虚拟房间,但比传统的虚拟机 (VM) 更快和更高效。多亏了 Docker,容器已经变得非常流行,并已成为现代软件开发的必备工具。

……

Docker 是什么?

Docker 容器 Docker容器简介

Docker 是一个开源的平台,它自动化了应用部署到容器的过程。容器包含了运行应用所需的所有内容,包括代码、运行时环境、库和系统工具。Docker 提供给开发者的工具用于构建、管理和分发这些容器。

……

OCI (OCI)

什么是开放容器倡议组织 (OCI)?

开放容器倡议组织 (OCI) 是由 Linux 基金会于 2015 年成立的一个开放治理组织。其目标是为容器运行时环境和镜像规范创建行业标准,确保容器生态系统之间的互操作性。

Docker 最初开发了自己的容器运行时和镜像格式。然而,随着容器的快速发展和对更广泛标准化的需求,Docker 将其容器运行时技术 runc 贡献给了 OCI。如今,Docker 的生态系统遵循 OCI 标准,使得 Docker 容器可以与其他符合 OCI 规范的运行时和工具无缝集成。

通过遵守OCI标准,Docker确保其容器和映像能在不同平台和工具上运行,促进了更加开放和协作的容器生态。

此处省略内容

容器有什么用呢?

  1. 便携性:容器可以在任何支持OCI兼容运行时的系统上运行,确保应用程序在不同环境中表现一致。
  2. 高效性:容器共享主机系统的内核,因此相比于虚拟机,它们更轻便且启动速度快。
  3. 可扩展性:容器可以根据负载轻松扩展或缩减。
  4. 一致性:容器通过封装所有依赖和配置,减少了“在我的机器上可以运行”的问题。

此处省略内容

容器 vs. 虚拟机 vs. 物理机

容器 VS 虚拟机 VS 裸金属 一起来看看吧!

裸机 :

  • 直接运行在物理硬件上,无需虚拟化层。
  • 提供最佳性能,并可直接访问硬件资源。
  • 最适合高性能工作负载和需要完全控制硬件的应用。

裸金属

虚拟机(VMs)

  • 自带完整操作系统,因此更重。
  • 需要更多资源,启动时间也更长。
  • 适合在一台物理机上运行多个操作系统。

虚拟机 (VM)

容器:

  • 共享主机操作系统内核,使它们更轻便。
  • 占用内存少,启动快。
  • 非常适合微服务和快速部署。

看看这个容器的图片容器

方面 容器 虚拟机 裸金属
资源效率 中等 最高
启动时间 数秒 数分钟 不适用(N/A)
隔离性 进程级 操作系统级别 完全物理隔离
可移植性 非常高 中等
性能 接近本机 中等 本机
应用场景 微服务、CI/CD管道 传统应用、操作系统测试 高性能计算,

Docker 术语表

Docker 术语图解

  • Dockerfile : 一个包含构建Docker镜像指令的文本文件,用于指导如何创建Docker镜像。
  • 镜像 :通过Dockerfile构建的镜像是一个用于创建容器的只读模板,并遵循OCI镜像规范。
  • 容器 :镜像的一个可运行实例。容器可以被启动、停止和删除。
  • 仓库(Registry) :存放Docker镜像的仓库。Docker Hub是一个流行的公共镜像仓库,其他符合OCI规范的仓库包括Harbor和Quay等。

此处省略内容

Docker命令行快捷参考表

Docker 命令行快捷参考

0. 一些基本的 Docker 指令

  • docker --version :查看 Docker 版本信息。
  • docker help :显示 Docker 命令和选项的帮助信息。
  • docker info :显示 Docker 系统信息。

1. 图片

  • docker images:查看所有本地镜像。
  • docker pull <image>:从Docker Hub下载一个镜像。
  • docker build -t <image_name> .:从当前目录的Dockerfile构建一个镜像。
  • docker rmi <image>:移除一个镜像。
  • docker tag <source_image> <new_image>:为一个镜像添加一个新的标签。

2. 容器

  • docker run<image>:基于镜像运行一个容器。
  • docker run -it<image>:以交互模式运行一个容器。
  • docker run -d<image>:以后台模式运行一个容器。
  • docker ps :列出正在运行的容器。
  • docker ps -a :列出所有容器,包括已停止的。
  • docker stop<container>:停止正在运行的容器。
  • docker start<container>:启动已停止的容器。
  • docker restart<container>:重启容器。
  • docker rm<container>:移除已停止的容器。
  • docker exec -it<container> <command>:在运行的容器内执行命令。

3. 管理容器

  • docker logs<container>:查看容器的日志。
  • docker top<container>:查看容器中的进程。
  • docker stats<container>:查看容器的实时资源使用情况。
  • docker inspect<container>:查看容器或镜像的信息。
  • docker rename<old_name> <new_name>:将容器从<old_name>重命名为<new_name>。

4. 人脉拓展

  • docker network ls :列出所有Docker网络列表。
  • docker network create<network_name>:新建一个网络。
  • docker network connect<network> <container>:把容器连到网络上。
  • docker network disconnect<network> <container>:把容器从网络断开。
  • docker network inspect<network>:查看网络详情。

5.

  • docker volume ls :列出所有卷的内容。
  • docker volume create<volume_name>:创建卷。
  • docker volume inspect<volume>:查看卷的详细信息。
  • docker volume rm<volume>:删除卷。

……

创建一个简单的Docker容器

让我们创建一个简单的 Docker 容器来运行 Python 脚本。

  1. 创建一个Python脚本文件:将代码保存到名为 app.py 的文件中:
       print("嗨,Docker!")

点击这里进入或退出全屏

  1. 创建一个叫 Dockerfile 的文件,包含以下内容:
# 使用Python 3.9-slim作为基础镜像
FROM python:3.9-slim
# 将app.py复制到镜像中的/app.py
COPY app.py /app.py
# 设置启动命令为运行/app.py
CMD ["python", "/app.py"]

全屏显示 退出全屏

  1. 构建 Docker 镜像
docker build -t python-app . # 使用Docker构建一个名为python-app的镜像

全屏显示 退出全屏

运行一下您的Docker容器

       docker run python-app

运行一个名为python-app的Docker容器 (Running a Docker container named python-app)

全屏模式(按ESC退出)

这将会显示:,

嘿,Docker!

切换到全屏模式,退出全屏模式


总结

Docker 使得使用容器构建、部署和运行应用程序变得非常简单。通过遵循 OCI 标准,Docker 确保在容器世界里,所有组件都能无缝协作。容器非常高效、便携且易于扩展,这就是为什么它们是现代软件开发的核心部分。如果你熟悉 Docker 以及它如何与 OCI 协同工作,你可以利用这项技术加速工作流程,并确保你的应用程序能在任何平台上顺利运行。

下周我将研究Docker技术,敬请关注。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消