一、快速安装 (Ubuntu)
1.1 一键安装脚本
bash
复制
# 适用于 Ubuntu 20.04+/Debian 11+
sudo apt update && sudo apt install -y curl
curl -fsSL https://get.docker.com | sudo sh
1.2 验证安装
bash
复制
sudo docker version # 查看版本
sudo docker run hello-world # 验证基础功能
1.3 权限配置
bash
复制
# 避免频繁使用 sudo(需重新登录生效)
sudo usermod -aG docker $USER
二、核心操作
2.1 容器生命周期
2.2 镜像管理
bash
复制
# 拉取镜像
docker pull ubuntu:22.04
# 构建镜像(需 Dockerfile)
docker build -t my-app:v1 .
# 清理无用镜像
docker image prune -a
三、进阶配置
3.1 数据持久化
bash
复制
# 挂载宿主机目录(推荐)
docker run -v /宿主机路径:/容器路径 mysql
# 使用数据卷(自动管理)
docker volume create db_data
docker run -v db_data:/var/lib/mysql mysql
3.2 网络配置
bash
复制
# 创建自定义网络
docker network create --driver=bridge my-net
# 指定容器IP(需自定义网络)
docker run --net=my-net --ip=172.18.0.10 nginx
3.3 资源限制
bash
复制
# 限制CPU和内存
docker run -it --cpus=1.5 --memory=2g --memory-swap=3g ubuntu
3.4 容器编排(单机版)
bash
复制
# 使用 Docker Compose(需安装)
docker compose up -d
四、问题排查
4.1 常见错误
4.2 调试工具
bash
复制
# 查看容器详细信息
docker inspect web | grep -E "IPAddress|Ports"
# 实时监控资源使用
docker stats --format "table {{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}"
五、最佳实践
5.1 镜像优化
精简基础镜像:优先选择
Alpine
或Distroless
dockerfile
复制
FROM python:3.9-alpine COPY . /app RUN pip install --no-cache-dir -r requirements.txt
多阶段构建:分离编译与运行环境
dockerfile
复制
# 编译阶段 FROM node:16 AS builder COPY . . RUN npm install && npm run build # 运行阶段 FROM nginx:alpine COPY --from=builder /app/dist /usr/share/nginx/html
5.2 安全规范
禁止特权模式:避免
--privileged
非Root用户运行:
dockerfile
复制
RUN groupadd -r appuser && useradd -r -g appuser appuser USER appuser
5.3 生产部署
六、附录
6.1 Dockerfile 示例
dockerfile
复制
# 基础镜像
FROM ubuntu:22.04
# 元数据
LABEL maintainer="dev@example.com"
# 安装依赖
RUN apt update && apt install -y curl
# 复制文件
COPY app.sh /usr/local/bin/
# 容器入口
ENTRYPOINT ["/usr/local/bin/app.sh"]
6.2 常用命令速查
bash
复制
# 查看容器进程
docker top web
# 导出/导入容器快照
docker export web > web.tar
docker import web.tar my-web
# 查看容器修改历史
docker diff web