一、引言

在现代软件开发中,应用的跨平台运行与快速部署成为刚需。Docker 作为一款轻量级容器化技术,凭借“一次封装,到处运行”的理念,迅速成为 DevOps 和云计算时代的核心工具。本文将带你从零开始了解 Docker 的基础知识,包括安装方法、镜像与容器操作、仓库管理,以及如何使用 Docker 部署常见服务如 MySQLTomcatNginx


二、传统软件安装方式回顾

在介绍 Docker 之前,先简单回顾 Linux 环境下常见的软件安装方式:

  1. 包管理工具安装

    • RedHat 系列使用 rpm,Debian 系列使用 deb
  2. 在线工具安装

    • RedHat 系列常用 yum,Debian 系列使用 apt-get
  3. 源码编译安装

    • 下载源码 → 编译 → 安装,灵活但复杂。

这些方式在大规模环境中会遇到依赖复杂、部署不一致等问题。Docker 的出现正是为了解决这些痛点。


三、Docker 基础概念

1. 什么是 Docker

Docker 是基于 Go 语言实现的开源容器化项目,核心目标是:
Build, Ship and Run Any App, Anywhere —— 构建、分发、运行应用。

它通过容器技术,将应用和运行环境封装在一起,确保跨平台一致性,实现“开发一次,到处运行”。

2. 设计理念

  • Build(构建): 封装应用与依赖。
  • Ship(运输): 分发镜像,快速迁移。
  • Run(运行): 隔离执行,灵活扩展。

四、Docker 安装步骤(CentOS 示例)

  1. 安装依赖

    yum -y install yum-utils device-mapper-persistent-data lvm2
    
  2. 添加镜像源

    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
  3. 安装 Docker CE

    yum makecache fast
    yum -y install docker-ce
    
  4. 启动与状态查看

    systemctl start docker
    systemctl status docker
    
  5. 测试运行

    docker run hello-world
    

五、Docker 镜像操作

  • 获取镜像

    docker pull 镜像名称
    
  • 查看本地镜像

    docker images
    
  • 删除镜像

    docker rmi 镜像ID
    

示例:获取并运行 Nginx 镜像

docker pull nginx
docker run --name=my-nginx -p 80:80 -d nginx

六、Docker 容器操作

  1. 运行容器

    docker run -d -p 宿主机端口:容器端口 --name 容器名 镜像ID
    

    参数解释:

    • -d 后台运行
    • -p 端口映射
    • --name 指定容器名称
  2. 查看容器

    docker ps -qa
    
  3. 停止与启动容器

    docker stop 容器ID
    docker start 容器ID
    
  4. 删除容器

    docker rm 容器ID
    docker rm -f 容器ID   # 强制删除
    

七、Docker 应用部署案例

1. 部署 Nginx

  • 运行容器

    docker run --name=my-nginx -p 80:80 -d nginx
    
  • 目录结构

    • /etc/nginx: 配置文件
    • /var/log/nginx: 日志文件
    • /usr/share/nginx/html: 静态资源
  • 查看配置文件

    docker exec my-nginx cat /etc/nginx/nginx.conf
    
  • 部署网站到容器中

    docker cp ./my-site my-nginx:/usr/share/nginx/html/
    

访问 http://宿主机IP 即可看到部署效果。


八、总结

Docker 极大简化了应用的部署流程,解决了环境不一致和依赖复杂的问题。从镜像获取到容器运行,再到应用部署,整个过程轻量、快速且可移植。
无论是开发环境的快速搭建,还是生产环境的弹性扩展,Docker 都能提供高效的解决方案。

未来如果需要,我们可以进一步探索:

  • Docker Compose:多容器编排。
  • Docker Registry:私有镜像仓库。
  • Kubernetes:大规模容器编排与管理。
Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐