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 是一个强大的工具,可以简化应用程序的部署和管理,适用于各种不同的应用场景。

标签列表