介绍
Docker是一个开源平台,通过容器化简化了构建、发布和运行应用程序的过程。容器允许开发人员将应用程序及其依赖项打包,使其在不同环境中具有可移植性和一致性。这份Docker备忘单提供了重要命令和概念的快速参考指南,以有效地使用Docker。
什么是Docker?
Docker是一个容器化平台,使开发人员能够在隔离的容器中创建、部署和管理应用程序。这些容器封装了应用程序代码、运行时、库和依赖项,确保在各种系统上的一致性和效率。
了解更多:Docker入门完全指南
Docker架构
Docker遵循客户端-服务器架构:
- Docker客户端:允许用户与Docker守护进程进行交互的命令行工具。
- Docker守护进程:负责构建、运行和管理Docker容器的后台服务。
- Docker镜像:用于创建容器的只读模板。
- Docker容器:运行中的Docker镜像实例。
- Docker注册表:用于存储和分发Docker镜像的仓库。
安装Docker
要在您的系统上安装Docker,请按照您的操作系统的适当说明进行操作。以下是Windows和MacOS的安装步骤。
Windows
检查系统要求
Windows 10 64位:Pro、Enterprise或Education版本
BIOS/UEFI中启用硬件虚拟化(Intel VT-x/AMD-V)
下载Docker Desktop
访问Docker官方网站,下载适用于Windows的Docker Desktop安装程序。
安装Docker Desktop
运行您下载的安装程序,并按照安装向导进行操作。它将指导您完成安装过程。
启动Docker
安装完成后,Docker Desktop应该会自动启动。当它运行时,您将在系统托盘中看到Docker图标。
MacOS
检查系统要求
macOS Sierra 10.12或更新版本
macOS必须是2010年或更新的型号,并具有Intel的内存管理单元(MMU)虚拟化硬件支持。
为Mac下载Docker Desktop
访问Docker官方网站,下载适用于macOS的Docker Desktop安装程序。
安装Docker Desktop
打开下载的.dmg文件,并将Docker图标拖到应用程序文件夹中。
启动Docker
从应用程序文件夹中打开Docker。它将出现在菜单栏中,表示正在运行。
Docker注册表和仓库
Docker注册表是一个存储和管理Docker镜像的服务。它充当一个中央仓库,用户可以在其中存储、共享和拉取Docker镜像。Docker Hub是一个公共的Docker注册表,而私有注册表可以用于安全的内部镜像存储。
Docker仓库是一组具有相同名称的相关镜像,通过表示不同版本或配置的标签进行区分。用户可以将镜像推送到注册表中的仓库,其他人可以拉取这些镜像来运行容器。在Docker生态系统中,注册表和仓库在简化镜像分发和促进协作开发方面至关重要。
以下是各种功能的Docker备忘单命令-
运行容器
要从镜像中运行容器,请使用以下命令:docker run [选项] 镜像 [命令]
例如,要运行一个Nginx Web服务器:docker run -d -p 80:80 nginx
启动或停止容器
- 要启动已停止的容器,请使用:docker start CONTAINER_ID
- 要停止正在运行的容器,请使用:docker stop CONTAINER_ID
获取容器信息
- 要列出所有正在运行的容器,请使用:docker ps
- 要查看所有容器(包括停止的容器),请使用:docker ps -a
管理图像
- 从注册表中拉取图像,使用:docker pull IMAGE_NAME[:TAG]
- 通过Dockerfile构建图像,进入Dockerfile目录并使用:docker build -t IMAGE_NAME[:TAG]
网络
- 创建用户定义的桥接网络,使用:docker network create NETWORK_NAME
- 将容器连接到网络,使用:docker network connect NETWORK_NAME CONTAINER_NAME
清理Docker
- 删除已停止的容器,使用:docker rm CONTAINER_ID
- 删除图像,使用:docker rmi IMAGE_NAME
- 清理未使用的资源(容器、网络、图像和卷),使用:docker system prune
编排
Docker Compose是一个用于定义和管理多容器Docker应用程序的工具。它使用YAML文件配置应用程序的服务、网络和卷。使用Docker Compose,您可以轻松地启动复杂的环境和应用程序。以下是Docker Compose的命令速查表-
- 创建并启动docker-compose.yml文件中定义的所有容器,使用:docker-compose up
- 以分离模式创建并启动容器,使用:docker-compose up -d
- 停止并删除由docker-compose up创建的所有容器、网络和卷,使用:docker-compose down
- 列出docker-compose.yml文件中定义的所有运行中的容器,使用:docker-compose ps
- 查看特定服务的日志,使用:docker-compose logs [service_name]
- 构建或重新构建docker-compose.yml文件中定义的图像,使用:docker-compose build
- 在特定服务容器中执行命令,使用:docker-compose exec [service_name] [command]
服务
Docker Swarm模式中的服务定义了集群上的任务。它们允许您将应用程序在多个节点上进行扩展,并确保高可用性。以下是相关命令:
- 在当前节点上初始化Docker Swarm,使用:docker swarm init
- 作为工作节点加入Docker Swarm,使用:docker swarm join
- 列出Docker Swarm中的节点,使用:docker node ls
- 创建新的服务,使用:docker service create
- 列出在Swarm中运行的所有服务,使用:docker service ls
- 列出特定服务的任务(容器),使用:docker service ps [service_name]
- 将服务扩展到N个副本,使用:docker service scale [service_name]=N
- 更新服务(例如更改副本数、图像版本),使用:docker service update
- 从Swarm中删除服务,使用:docker service rm [service_name]
- 将节点设置为“drain”模式,表示它将不接收新任务,使用:docker node update –availability drain [node_name]
与容器的交互
要在运行中的容器内执行命令,使用:docker exec [options] CONTAINER_ID COMMAND [ARG…]
例如,要访问运行中容器的shell:docker exec -it CONTAINER_ID sh
重要术语
- 图像:一个轻量级、独立和可执行的软件包,包括运行软件所需的一切,包括代码、运行时、库和依赖项。
- 容器:Docker图像的实例,可以运行、启动、停止和删除。
- Dockerfile:包含构建Docker图像的指令的文本文件。
- 注册表:命名的Docker图像的存储和内容传递系统。
- 仓库:具有相同名称但通过标签区分的一组Docker图像。
- Docker Compose:用于定义和管理多容器Docker应用程序的工具。
- Docker Swarm:Docker的本地集群和编排解决方案。
结论
总之,Docker是一个重要的容器化平台,通过将应用程序及其依赖项封装在隔离的容器中,简化了构建、发布和运行应用程序的过程。通过这份全面的速查表,用户可以高效地利用Docker的能力,简化应用程序部署,并在不同环境中保持一致性。