Docker 简介与概述

Docker - 容器化平台

Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows机器上。

容器化 微服务 DevOps 持续集成

什么是Docker?

Docker 使用容器来创建、部署和运行应用程序。容器允许开发人员将应用程序与所有需要的部分(如库和其他依赖项)打包在一起,并将其作为一个包发送出去。

通过使用 Docker,开发人员可以确保应用程序在任何环境中都能以相同的方式运行,无论是开发环境、测试环境还是生产环境。

Docker的优势

环境一致性

确保应用在不同环境中运行一致,避免"在我机器上可以运行"的问题。

快速部署

容器启动速度快,秒级部署,提高开发和部署效率。

资源高效

相比虚拟机,容器共享主机操作系统内核,资源占用更少。

Docker核心概念

镜像(Image)

Docker镜像是一个只读模板,包含创建Docker容器的指令。它类似于虚拟机的快照。

容器(Container)

容器是镜像的运行实例。您可以使用Docker API或CLI创建、启动、停止、移动或删除容器。

仓库(Registry)

Docker仓库用来存储镜像。Docker Hub是公共仓库,任何人都可以使用。

Docker架构

Docker使用客户端-服务器架构。Docker客户端与Docker守护进程通信,后者负责构建、运行和分发Docker容器。

  • Docker守护进程(Docker Daemon):监听Docker API请求并管理Docker对象
  • Docker客户端(Docker Client):用户与Docker交互的主要方式
  • Docker注册表(Docker Registry):存储Docker镜像
  • Docker对象(Docker Objects):镜像、容器、网络、卷等
$ docker run hello-world
# 从Docker Hub拉取hello-world镜像并运行
 
Hello from Docker!
This message shows that your installation appears to be working correctly.

Docker与传统虚拟化对比

特性 Docker容器 传统虚拟机
启动速度 秒级 分钟级
性能 接近原生 有一定损耗
磁盘占用 MB级别 GB级别
隔离性 进程级别 系统级别
操作系统 共享主机内核 每个虚拟机独立OS

Docker应用场景

应用打包与部署

将应用程序及其依赖环境打包成镜像,实现一次构建,到处运行。

微服务架构

每个微服务运行在独立的容器中,实现服务隔离和独立部署。

持续集成/持续部署

在CI/CD流程中使用Docker镜像,确保测试和生产环境的一致性。

混合云部署

在不同云平台间无缝迁移应用,避免供应商锁定。

Docker基本命令示例
# 拉取镜像
docker pull nginx

# 运行容器
docker run -d -p 80:80 nginx

# 查看运行中的容器
docker ps

# 查看所有镜像
docker images

# 构建镜像
docker build -t my-app .