Docker 知识点

什么是 Docker

Docker 是一个用于开发、部署和运行应用程序的开源平台。它能够将应用程序及其依赖项打包到一个称为容器的独立单元中,并在任何环境中运行。Docker 隔离了应用程序和底层操作系统,提供了一致的部署和运行环境。

Docker 的优势

  1. 简化部署:Docker 将应用程序及其依赖项打包到一个容器中,使部署变得简单,可以在任何环境中运行。
  2. 快速启动和停止:Docker 容器可以在几秒钟之内启动和停止,提供了快速迭代和开发的环境。
  3. 资源利用率高:Docker 共享主机操作系统的内核,并且容器之间可以共享资源,减少了资源的浪费。
  4. 可移植性:Docker 容器可以在不同的主机之间移植,保证了应用程序的可移植性。

Docker 安装和配置

  1. 安装 Docker:根据不同的操作系统,可以从 Docker 官方网站下载并安装 Docker。
  2. 配置 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 更新和扩容
        更新应用程序 -> 构建新镜像