文章目录
- 前言
 - 1. Docker 容器是什么?
 - 隔离性
 - 轻量级
 - 可移植性
 - 可复用性
 
- 2. Docker 核心概念
 - 镜像
 - 容器
 - 仓库
 - Dockerfile
 
- 3. Docker 基本使用
 - (1) 安装 Docker
 - (2) 容器生命周期管理
 - (3) 镜像管理
 - (4) 进入容器内部
 - (5) 数据持久化(挂载卷)
 - (6) 网络管理
 
- 4. Dockerfile 示例
 - 5. Docker 典型使用场景
 - 快速部署应用
 - 微服务架构
 - CI/CD流水线
 - 开发环境隔离
 
- 6. 常见问题
 - 权限问题
 - 清理资源
 - 查看日志
 
- 总结
 
前言
本文简单介绍了Docker容器的概念以及使用。
1. Docker 容器是什么?
Docker 容器是一种轻量级、可移植的虚拟化技术,允许开发者将应用程序及其依赖环境打包成一个独立的运行单元。容器基于 Docker 镜像运行,具有以下特点:
隔离性
隔离性:每个容器运行在独立的用户空间,互不干扰(基于 Linux 的 cgroups 和 namespaces)。
轻量级
轻量级:与虚拟机(VM)相比,容器共享主机 OS 内核,无需额外运行完整的操作系统,启动更快、占用资源更少。
可移植性
可移植性:容器可以在任何支持 Docker 的环境中运行(开发、测试、生产环境一致)。
可复用性
可复用性:容器镜像可以存储在仓库(如 Docker Hub)中,供他人下载使用。
2. Docker 核心概念
镜像
镜像(Image) 只读模板,包含运行容器所需的代码、库、环境变量等(如 ubuntu:20.04)。
容器
容器(Container) 镜像的运行实例,具有可写层(存储运行时数据)。
仓库
仓库(Registry) 存储镜像的服务,如 Docker Hub(公共仓库)或私有仓库(如 Harbor)。
Dockerfile
Dockerfile 文本文件,定义如何构建镜像(通过 docker build 命令)。
3. Docker 基本使用
(1) 安装 Docker
Linux(Ubuntu):
sudo apt update
sudo apt install docker.io
sudo systemctl start docker
sudo systemctl enable docker
Windows/macOS:下载 Docker Desktop。验证安装:
docker --version  # 查看版本
docker run hello-world  # 运行测试容器
 
(2) 容器生命周期管理
命令 作用
docker run <镜像>	创建并启动容器(如 docker run nginx)
docker start <容器ID>	启动已停止的容器
docker stop <容器ID>	停止运行中的容器
docker restart <容器ID>	重启容器
docker rm <容器ID>	删除容器
docker ps	查看运行中的容器(加 -a 显示所有)
 
示例:
docker run -d -p 80:80 --name my_nginx nginx  # 后台运行Nginx并映射端口80
docker ps  # 查看容器
docker stop my_nginx  # 停止容器
 
(3) 镜像管理
命令 作用
docker pull <镜像名>	下载镜像(如 docker pull ubuntu)
docker images	查看本地镜像
docker rmi <镜像ID>	删除镜像
docker build -t <镜像名> .	通过 Dockerfile 构建镜像(需在Dockerfile所在目录运行)
 
示例:
docker pull alpine:latest  # 下载Alpine Linux镜像
docker images  # 列出镜像
docker rmi alpine  # 删除镜像
 
(4) 进入容器内部
docker exec -it <容器ID> /bin/bash  # 交互式进入容器
参数说明:
-i:保持交互式输入。
-t:分配伪终端(TTY)。
/bin/bash:启动Shell(根据镜像可能为 /bin/sh)。
 
(5) 数据持久化(挂载卷)
容器默认是临时存储,重启后数据丢失。需通过卷(Volume)或绑定挂载持久化数据:
docker run -v /宿主机路径:/容器路径 <镜像>  # 绑定挂载
docker run -v 卷名:/容器路径 <镜像>        # 使用Docker卷
示例:
docker run -v /home/user/data:/var/www/html nginx  # 挂载主机目录
 
(6) 网络管理
命令 作用
docker network ls	查看网络列表
docker network create	创建自定义网络
docker run --network	指定容器网络(如 --network=host 使用主机网络)
 
示例:
docker network create my_net  # 创建网络
docker run --network=my_net --name app1 my_app  # 容器使用自定义网络
 
4. Dockerfile 示例
通过 Dockerfile 自定义镜像:
# 基于Ubuntu镜像
FROM ubuntu:20.04# 安装依赖
RUN apt update && apt install -y python3# 复制本地文件到容器
COPY app.py /app/
# 设置工作目录
WORKDIR /app
# 定义启动命令
CMD ["python3", "app.py"]
 
构建镜像:
docker build -t my_python_app .
 
5. Docker 典型使用场景
快速部署应用
快速部署应用:**一键运行数据库(MySQL)、Web服务器(Nginx)**等。
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123 mysql:5.7
 
微服务架构
微服务架构:每个服务运行在独立容器中,通过网络通信。
CI/CD流水线
CI/CD 流水线:在容器中运行测试和构建,确保环境一致。
开发环境隔离
开发环境隔离:避免“在我机器上能运行”问题。
6. 常见问题
权限问题
权限问题:在 Linux 上,非 root 用户需加入 docker 组:
sudo usermod -aG docker $USER
 
清理资源
清理资源:
docker system prune  # 删除无用镜像、容器、网络
 
查看日志
查看日志:
docker logs <容器ID>
 
总结
Docker 容器通过标准化环境,极大提升了开发、部署的效率。
 核心步骤:
 1.拉取镜像 → 2. 运行容器 → 3. 管理生命周期 → 4. 自定义镜像(Dockerfile) → 5. 持久化数据/配置网络。
 掌握这些基础操作后,可进一步学习 Docker Compose(多容器编排)和 Kubernetes(容器集群管理)。