Docker 知识点
什么是 Docker
Docker 是一个用于开发、部署和运行应用程序的开源平台。它能够将应用程序及其依赖项打包到一个称为容器的独立单元中,并在任何环境中运行。Docker 隔离了应用程序和底层操作系统,提供了一致的部署和运行环境。
Docker 的优势
- 简化部署:Docker 将应用程序及其依赖项打包到一个容器中,使部署变得简单,可以在任何环境中运行。
- 快速启动和停止:Docker 容器可以在几秒钟之内启动和停止,提供了快速迭代和开发的环境。
- 资源利用率高:Docker 共享主机操作系统的内核,并且容器之间可以共享资源,减少了资源的浪费。
- 可移植性:Docker 容器可以在不同的主机之间移植,保证了应用程序的可移植性。
Docker 安装和配置
- 安装 Docker:根据不同的操作系统,可以从 Docker 官方网站下载并安装 Docker。
- 配置 Docker:安装完成后,需要配置 Docker 的一些参数,比如镜像仓库、网络设置等。
Docker 基本命令
以下是一些常用的 Docker 命令:
docker run:运行一个容器。docker ps:列出正在运行的容器。docker images:列出本地的镜像。docker pull:从镜像仓库拉取一个镜像。docker push:将一个镜像推送到镜像仓库。docker build:构建一个镜像。docker rm:删除一个容器。docker rmi:删除一个镜像。
Docker 实例
下面是一个使用 Docker 运行一个简单的 Web 应用程序的示例:
# 拉取一个基于 Node.js 的镜像
docker pull node
# 创建一个容器并运行
docker run -d -p 8080:8080 --name my-app node
# 将应用程序代码复制到容器中
docker cp app.js my-app:/app.js
# 进入容器并安装依赖项
docker exec -it my-app bash
npm install express
# 在容器中运行应用程序
docker exec -d my-app node app.js
上述示例中,我们首先拉取了一个基于 Node.js 的镜像,然后创建了一个名为 my-app 的容器,并将容器的 8080 端口映射到主机的 8080 端口。然后,我们将应用程序代码复制到容器中,并在容器中安装了 Express 依赖项。最后,我们在容器中运行了应用程序。
Docker 架构
下图展示了 Docker 的架构:
erDiagram
container Docker
container Host
container Image Registry
container Docker Hub
Docker --> Host
Docker --> Image Registry
Docker --> Docker Hub
上图中,Docker 主机上运行着多个 Docker 容器,这些容器共享主机操作系统的内核。镜像仓库存储着各种镜像,可以从仓库中拉取镜像到主机上。Docker Hub 是一个公共的镜像仓库,可以免费使用其中的镜像。
Docker 旅行图
下图展示了使用 Docker 构建、部署和运行应用程序的旅程:
journey
title Docker Journey
section 构建镜像
测试应用程序代码 -> 创建 Dockerfile -> 构建镜像
section 部署容器
拉取镜像 -> 运行容器 -> 配置网络
section 运行应用程序
安装依赖项 -> 启动应用程序 -> 访问应用程序
section 更新和扩容
更新应用程序 -> 构建新镜像
















