Docker 速查手册:从入门到精通的容器化指南
前言
Docker 作为当今最流行的容器化技术,已经成为开发者和运维人员的必备技能。本文将系统性地介绍 Docker 的核心概念、常用命令和最佳实践,帮助读者快速掌握 Docker 的使用方法。
Docker 基础概念
什么是 Docker?
Docker 是一种轻量级的虚拟化技术,它通过容器(Container)的方式实现应用程序的打包和隔离运行。与传统的虚拟机相比,Docker 容器更加轻量、启动更快、资源占用更少。
核心组件
- 镜像(Image):Docker 容器的模板,包含运行应用所需的所有文件和配置
- 容器(Container):镜像的运行实例,是一个隔离的进程空间
- 仓库(Repository):存储和分发 Docker 镜像的地方
- Dockerfile:用于自动化构建镜像的脚本文件
安装与配置
系统要求
- Linux:内核版本至少 3.10.x
- macOS:10.8 Mountain Lion 或更高版本
安装方法
Linux 系统
curl -sSL https://get.docker.com/ | sh
macOS 系统
推荐安装 Docker Community Edition(社区版),可以通过 Homebrew 安装:
brew install --cask docker
安装完成后,在 Launchpad 中点击 Docker 图标启动服务,然后可以运行测试容器:
docker run hello-world
容器操作指南
容器生命周期管理
-
创建容器:
docker create --name my_container nginx -
启动/停止容器:
docker start my_container docker stop my_container -
重启容器:
docker restart my_container -
删除容器:
docker rm my_container
容器资源限制
-
CPU 限制:
docker run -it --cpus=0.5 ubuntu # 限制使用 0.5 个 CPU 核心 -
内存限制:
docker run -it -m 300M ubuntu # 限制内存为 300MB
容器信息查看
-
查看运行中的容器:
docker ps -
查看容器日志:
docker logs my_container -
查看容器详细信息:
docker inspect my_container
镜像管理
镜像操作
-
拉取镜像:
docker pull ubuntu:18.04 -
列出本地镜像:
docker images -
删除镜像:
docker rmi ubuntu:18.04
构建自定义镜像
通过 Dockerfile 构建镜像:
docker build -t my_image .
示例 Dockerfile:
FROM ubuntu:18.04
RUN apt-get update && apt-get install -y nginx
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
网络与存储
网络配置
-
创建网络:
docker network create my_network -
连接容器到网络:
docker network connect my_network my_container
数据卷管理
-
创建数据卷:
docker volume create my_volume -
挂载数据卷:
docker run -v my_volume:/data ubuntu -
挂载主机目录:
docker run -v /host/path:/container/path ubuntu
最佳实践
- 使用 .dockerignore 文件:排除不必要的文件,减小镜像体积
- 多阶段构建:减少最终镜像的大小
- 最小化镜像:基于 Alpine Linux 等轻量级基础镜像
- 一个容器一个进程:遵循单一职责原则
- 使用官方镜像:确保安全性和稳定性
常见问题解决
-
容器端口映射:
docker run -p 8080:80 nginx # 将容器80端口映射到主机8080端口 -
进入运行中的容器:
docker exec -it my_container /bin/bash -
清理无用资源:
docker system prune # 清理停止的容器、无用的网络和镜像
总结
本文全面介绍了 Docker 的核心概念和常用操作,从基础安装到高级功能,涵盖了容器管理的各个方面。掌握这些知识后,读者应该能够熟练使用 Docker 进行应用容器化部署和管理。随着对 Docker 理解的深入,可以进一步探索 Docker Compose、Swarm 和 Kubernetes 等更高级的容器编排工具。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



