Docker 基本使用
Docker 的核心价值在于虚拟化或者说环境隔离【通过虚拟化技术实现虚拟环境】,解决环境配置和部署的依赖问题实现解耦
我对虚拟化的理解源自《Operating Systems: Three Easy Pieces》,推荐阅读
容器技术相关历史推荐知乎上的这篇文章:容器技术的历史
Docker 基本概念
Docker 提供了在称为容器的松散隔离环境中打包和运行应用程序的能力
- 镜像(Image):镜像是一个只读的模板,用于创建 Docker 容器
- 容器(Container):容器是一个可运行的实例,是镜像的运行时实例
两者的关系类似于面向对象编程中的类和对象
Docker 生态系统
- Docker 注册表(Docker Registry):Docker 注册表是一个存储和分发 Docker 镜像的场所
- Docker 客户端(Docker Client):用于与 Docker 服务器交互的 CLI 工具
- Docker 服务器(Docker Server):Docker 服务器是一个守护进程,用于管理 Docker 对象,如镜像、容器、网络和卷
- Docker Hub:这是所有自定义镜像的存储库,类似于 GitHub
一种技术的发展离不开生态系统的支持,Docker 的生态系统也是 Docker 成功的重要原因之一,像 Git 与 GitHub、Node.js 与 npm、Python 与 PyPI 等技术都有类似的生态系统
关于 Docker 安装,这里不再赘述,可以参考官方文档:Get Docker
不过我比较好奇的是 Docker 是基于 Linux 的 Kernal 实现的,那么在 Windows 和 Mac 上如何运行呢?反正因为这个在 Windows 和 Mac 安装会相对麻烦一点。我只是练习使用是在虚拟机中使用 Debian 安装的
只不过需要说明一下,一般在安装 Docker 后,关于 Docker 相关内容需要使用 sudo 进行提权,如果想方便使用应该将你想使用的用户添加到 docker 组中,命令:
sudo usermod -aG docker $USER
Docker 使用容器
通过镜像创建容器
一般在创建容器的过程:
- Docker 守护进程首先尝试在本地仓库查找 Image
- 如果本地没有对应 Image 会继续远程拉取
- 在 Docker 守护进程成功获取 Image,后会通过 Image 创建 Container
示例:
# hello-world 镜像是用于测试的,通过下面命令可以创建对应容器并运行此容器
docker run hello-world
#### 下面是会显示的内容 #####
# 这是本地没有 hello-world 镜像
Unable to find image 'hello-world:latest' locally
# 下面是真的进行远程拉取,并创建容器
latest: Pulling from library/hello-world
2db29710123e: Pull complete
Digest: sha256:ffb13da98453e0f04d33a6eee5bb8e46ee50d08ebe17735fc0779d0349e889e9
Status: Downloaded newer image for hello-world:latest
# 下面是容器运行的内容,除了首行外我使用 ... 做了省略
标签:容器,python,hello,开发,world,Docker,docker
From: https://www.cnblogs.com/shadow-/p/17289295.html