docker笔记(docker笔记本)
## Docker 笔记### 简介Docker 是一个开源的应用容器引擎,开发者可以打包应用及其依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux 或 Windows 机器上,也可以实现虚拟化。Docker 使用客户端-服务器 (C/S) 架构模式,使用远程 API 来管理和创建 Docker 容器。### Docker 架构Docker 使用客户端-服务器架构,主要组件包括:
Docker 守护进程(Docker Daemon):
运行在宿主机后台,负责构建、运行和分发 Docker 镜像。
Docker 客户端(Docker Client):
用户与 Docker 交互的界面,可以发送命令给 Docker 守护进程。
Docker 镜像(Docker Image):
只读模板,包含创建 Docker 容器的说明。
Docker 容器(Docker Container):
镜像的运行实例,包含应用及其所有依赖。
Docker Registry:
存放 Docker 镜像的仓库。![Docker 架构](https://www.docker.com/sites/default/files/d8/2019-07/Moby-logo_Wordmark_White.png)### 基本概念
镜像分层:
Docker 镜像由一系列只读层组成,每层都基于其下方层进行构建。
容器读写层:
当启动一个容器时,Docker 会在镜像的最顶层添加一个可写层。
镜像缓存:
Docker 会缓存镜像层,以加速后续构建和拉取镜像的过程。
容器网络:
Docker 支持多种网络模式,允许容器之间以及容器与外部网络进行通信。### 常用命令| 命令 | 说明 | | ------------------- | --------------------------------------------- | | docker version | 查看 Docker 版本 | | docker search | 搜索 Docker 镜像 | | docker pull | 拉取 Docker 镜像 | | docker images | 列出本地镜像 | | docker run | 运行 Docker 容器 | | docker ps | 列出正在运行的容器 | | docker stop | 停止运行中的容器 | | docker kill | 强制停止运行中的容器 | | docker rm | 删除容器 | | docker rmi | 删除镜像 | | docker build | 从 Dockerfile 构建镜像 | | docker exec | 在运行的容器中执行命令 | | docker logs | 查看容器的日志 | | docker compose | 定义和管理多容器 Docker 应用程序 |### DockerfileDockerfile 是一个文本文件,包含构建 Docker 镜像的指令。#### 示例 Dockerfile:```dockerfile # 基于 Ubuntu 镜像构建 FROM ubuntu:latest# 设置维护者信息 MAINTAINER your_name# 更新 apt 包索引 RUN apt-get update# 安装 Nginx RUN apt-get install -y nginx# 暴露端口 EXPOSE 80# 设置默认命令 CMD ["nginx", "-g", "daemon off;"] ```### 优点
轻量级:
相比虚拟机,Docker 容器更加轻量级,占用资源更少。
快速部署:
容器可以快速启动和停止,提高了部署效率。
可移植性:
可以在任何支持 Docker 的平台上运行。
版本控制:
可以轻松地进行版本控制和回滚。
隔离性:
容器之间相互隔离,不会相互影响。### 应用场景
Web 应用部署:
将 Web 应用及其依赖打包成 Docker 镜像,方便部署和扩展。
持续集成/持续交付 (CI/CD):
在 CI/CD 流程中使用 Docker 进行自动化构建、测试和部署。
微服务架构:
将应用程序拆分成多个独立的微服务,使用 Docker 进行部署和管理。
开发环境搭建:
使用 Docker 构建开发环境,保证开发环境的一致性。### 总结Docker 是一个强大的工具,可以简化应用程序的部署和管理,适用于各种不同的应用场景。
Docker 笔记
简介Docker 是一个开源的应用容器引擎,开发者可以打包应用及其依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux 或 Windows 机器上,也可以实现虚拟化。Docker 使用客户端-服务器 (C/S) 架构模式,使用远程 API 来管理和创建 Docker 容器。
Docker 架构Docker 使用客户端-服务器架构,主要组件包括:* **Docker 守护进程(Docker Daemon):** 运行在宿主机后台,负责构建、运行和分发 Docker 镜像。 * **Docker 客户端(Docker Client):** 用户与 Docker 交互的界面,可以发送命令给 Docker 守护进程。 * **Docker 镜像(Docker Image):** 只读模板,包含创建 Docker 容器的说明。 * **Docker 容器(Docker Container):** 镜像的运行实例,包含应用及其所有依赖。 * **Docker Registry:** 存放 Docker 镜像的仓库。![Docker 架构](https://www.docker.com/sites/default/files/d8/2019-07/Moby-logo_Wordmark_White.png)
基本概念* **镜像分层:** Docker 镜像由一系列只读层组成,每层都基于其下方层进行构建。 * **容器读写层:** 当启动一个容器时,Docker 会在镜像的最顶层添加一个可写层。 * **镜像缓存:** Docker 会缓存镜像层,以加速后续构建和拉取镜像的过程。 * **容器网络:** Docker 支持多种网络模式,允许容器之间以及容器与外部网络进行通信。
常用命令| 命令 | 说明 | | ------------------- | --------------------------------------------- | | docker version | 查看 Docker 版本 | | docker search | 搜索 Docker 镜像 | | docker pull | 拉取 Docker 镜像 | | docker images | 列出本地镜像 | | docker run | 运行 Docker 容器 | | docker ps | 列出正在运行的容器 | | docker stop | 停止运行中的容器 | | docker kill | 强制停止运行中的容器 | | docker rm | 删除容器 | | docker rmi | 删除镜像 | | docker build | 从 Dockerfile 构建镜像 | | docker exec | 在运行的容器中执行命令 | | docker logs | 查看容器的日志 | | docker compose | 定义和管理多容器 Docker 应用程序 |
DockerfileDockerfile 是一个文本文件,包含构建 Docker 镜像的指令。
示例 Dockerfile:```dockerfile
基于 Ubuntu 镜像构建 FROM ubuntu:latest
设置维护者信息 MAINTAINER your_name
更新 apt 包索引 RUN apt-get update
安装 Nginx RUN apt-get install -y nginx
暴露端口 EXPOSE 80
设置默认命令 CMD ["nginx", "-g", "daemon off;"] ```
优点* **轻量级:** 相比虚拟机,Docker 容器更加轻量级,占用资源更少。 * **快速部署:** 容器可以快速启动和停止,提高了部署效率。 * **可移植性:** 可以在任何支持 Docker 的平台上运行。 * **版本控制:** 可以轻松地进行版本控制和回滚。 * **隔离性:** 容器之间相互隔离,不会相互影响。
应用场景* **Web 应用部署:** 将 Web 应用及其依赖打包成 Docker 镜像,方便部署和扩展。 * **持续集成/持续交付 (CI/CD):** 在 CI/CD 流程中使用 Docker 进行自动化构建、测试和部署。 * **微服务架构:** 将应用程序拆分成多个独立的微服务,使用 Docker 进行部署和管理。 * **开发环境搭建:** 使用 Docker 构建开发环境,保证开发环境的一致性。
总结Docker 是一个强大的工具,可以简化应用程序的部署和管理,适用于各种不同的应用场景。