当前位置: 首页 > news >正文

Docker 学习手册

Docker 用户手册

官方文档入口

英文原版: https://docs.docker.com/
中文社区版: https://docs.docker.cn/

安装docker

Windows (Docker Desktop)
https://www.docker.com/products/docker-desktop

Linux (Ubuntu)
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
验证安装
docker --version
docker run hello-world

基本概念理解

镜像(Image): 只读模板,包含运行应用所需的所有内容
容器(Container): 镜像的运行实例
仓库(Registry): 存储镜像的地方(Docker Hub)

日常使用命令

镜像管理

# 搜索镜像
docker search nginx# 拉取镜像
docker pull nginx:alpine# 查看本地镜像
docker images# 删除镜像
docker rmi nginx:alpine# 构建镜像
docker build -t myapp:1.0 .# 导出镜像
docker save -o myapp.tar myapp:1.0# 导入镜像
docker load -i myapp.tar

容器管理

# 运行容器
docker run -d --name my-nginx -p 80:80 nginx:alpine# 查看运行中的容器
docker ps# 查看所有容器
docker ps -a# 停止容器
docker stop my-nginx# 启动容器
docker start my-nginx# 重启容器
docker restart my-nginx# 进入容器
docker exec -it my-nginx /bin/sh# 查看容器日志
docker logs my-nginx# 实时查看日志
docker logs -f my-nginx# 删除容器
docker rm my-nginx# 强制删除运行中的容器
docker rm -f my-nginx

Dockerfile 详解

# 指定基础镜像
FROM node:16-alpine# 设置工作目录
WORKDIR /app# 复制文件
COPY package*.json ./
COPY . .# 运行命令
RUN npm install# 设置环境变量
ENV NODE_ENV=production# 暴露端口
EXPOSE 3000# 定义启动命令
CMD ["npm", "start"]

最佳实践

# 使用官方镜像
FROM node:16-alpine# 使用标签
LABEL maintainer="your-email@example.com"# 使用非root用户
RUN addgroup -g 1001 -S appgroup && \adduser -S appuser -u 1001# 多阶段构建
FROM node:16-alpine AS builder
WORKDIR /app
COPY . .
RUN npm run buildFROM nginx:alpine
COPY --from=builder /app/dist /usr/share/nginx/html

Docker Compose

# docker-compose.yml
version: '3.8'
services:web:build: .ports:- "3000:3000"environment:- DATABASE_URL=postgres://user:pass@db:5432/mydbdepends_on:- dbdb:image: postgres:13environment:POSTGRES_DB: mydbPOSTGRES_USER: userPOSTGRES_PASSWORD: passvolumes:- db_data:/var/lib/postgresql/datavolumes:db_data:

数据管理

# 创建卷
docker volume create mydata# 查看卷
docker volume ls# 查看卷详情
docker volume inspect mydata# 删除卷
docker volume rm mydata# 清理未使用卷
docker volume prune

使用示例

# 使用命名卷
docker run -d -v mydata:/app/data myapp# 使用绑定挂载
docker run -d -v /host/path:/container/path myapp# 使用只读挂载
docker run -d -v /host/path:/container/path:ro myapp

网络管理

网络命令

# 查看网络
docker network ls# 创建网络
docker network create mynetwork# 查看网络详情
docker network inspect mynetwork# 连接容器到网络
docker network connect mynetwork mycontainer# 断开网络连接
docker network disconnect mynetwork mycontainer# 删除网络
docker network rm mynetwork

网络示例

# 创建自定义网络
docker network create app-network# 运行容器并加入网络
docker run -d --name web --network app-network nginx
docker run -d --name db --network app-network redis

安全最佳实践

安全配置

# 使用非root用户
FROM node:16-alpine
RUN adduser -D -u 1001 appuser
USER appuser# 定期更新基础镜像
FROM node:16-alpine# 扫描安全漏洞
# 使用 docker scan myimage

运行时安全

# 限制资源
docker run -d \--memory=512m \--cpus=1.0 \--user=1001:1001 \myapp# 只读根文件系统
docker run -d \--read-only \--tmpfs /tmp \myapp

Docker桌面版特定功能

Windows/macOS 特有功能

  • 1、图形化界面管理
  • 2、WSL2 集成 (Windows)
  • 3、文件共享配置
  • 4、资源限制设置
  • 5、Kubernetes 集成

配置示例

// Docker Desktop settings.json
{"features": {"buildkit": true},"registry-mirrors": ["https://registry.docker-cn.com"]
}

故障排除

常用诊断命令

# 查看系统信息
docker system info# 查看磁盘使用
docker system df# 查看详细磁盘使用
docker system df -v# 查看事件
docker system events# 性能监控
docker stats

容器内进程

docker top container_name

日志和调试

# 查看容器日志
docker logs container_name# 实时日志
docker logs -f container_name# 检查容器配置
docker inspect container_name# 复制文件
docker cp container_name:/path/file.txt ./
docker cp file.txt container_name:/path/

生产环境建议

部署最佳实践

  • 1、使用编排工具: Docker Swarm 或 Kubernetes
  • 2、日志管理: 配置日志驱动和轮转
  • 3、监控告警: 设置资源监控和自动恢复
  • 4、备份策略: 定期备份重要数据卷
  • 5、安全扫描: 定期扫描镜像漏洞
    性能优化
# 限制资源使用
docker run -d \--memory=1g \--memory-swap=2g \--cpus=2.0 \--blkio-weight=500 \myapp# 使用健康检查
HEALTHCHECK --interval=30s --timeout=3s \CMD curl -f http://localhost/health || exit 1

获取帮助

社区资源

  • 1、Docker 官方论坛: https://forums.docker.com/
  • 2、Stack Overflow: 使用 [docker] 标签
  • 3、GitHub Issues: https://github.com/docker
  • 4、中文社区: Docker 中文社区网站

学习资源

  • 1、Docker 官方教程: https://docs.docker.com/get-started/
  • 2、Play with Docker: 在线练习环境
  • 3、Docker 样本项目: https://github.com/docker/labs
http://www.dtcms.com/a/519881.html

相关文章:

  • Docker 镜像构建:手把手教你用 docker commit 定制专属镜像
  • 有哪个网站可以做ppt赚钱宁波网络推广团队
  • 力扣每日一题(三)划分题 + 思路题
  • Python爬虫第10课:分布式爬虫架构与Scrapy-Redis
  • 2025年运维部网络安全工作小结1025
  • 基于 Python 的坦克大战小程序,使用 Pygame 库开发
  • 做网站前期需求分析收费么互联网营销是做什么
  • 在 MacOS 中安装 MySQL 8
  • 宿迁网站建设宿迁网站域名的组成
  • Gartner发布AI安全创新指南:用集成的模块化AI安全平台赢得AI安全之战
  • FastGateway 核心技术原理拆解手册
  • vue3中实现渐变三层柱状图
  • 7.IXM6U系统时钟
  • 算子相关通用概念整理
  • Java 操作 PDF 图像:轻松驾驭 PDF 文档中的图片
  • OS_2 进程与线程(进程管理)
  • 网站规划 评价谷歌三件套一键安装
  • 腾讯云服务器如何建设网站百度关键词排名突然没了
  • 【论文笔记】LTX-Video极致速度的视频生成模型
  • 安科瑞防逆流解决方案:物联网技术赋能光伏能源高效管理
  • 如何根据不同的场景选择YOLO相应的基座模型
  • 【OJ】二叉树的经典OJ题
  • Excel 重磅更新 AI技术走进公式
  • div嵌套影响网站收录建设公司需要网站吗
  • VBA技术资料MF383:处理Excel中存储为文本的数据
  • 注册网站的公司名字网站项目建设流程图
  • 大数据存储组件分别位于数据仓库的哪一层
  • Dubbo应用开发之RPC直连开发
  • 坦电容做电源滤波,放在陶瓷电容的前面还是后面好
  • 北京城建亚泰建设集团有限公司网站首页wordpress中文教程 下载