Docker 笔记 -- 借助AI工具强势辅助
常用命令
镜像管理命令:
docker images(列出镜像)
docker pull(拉取镜像)
docker build(构建镜像)
docker save/load(保存/加载镜像)
容器操作命令
docker run(创建并启动容器)
docker start/stop/restart(启停容器)
docker exec(进入容器)
docker rm/rmi(删除容器/镜像
仓库交互命令
docker login/logout(登录/退出仓库)
docker push(推送镜像)
docker pull(拉取镜像)
状态查看命令
docker ps(查看运行中容器)
docker logs(查看容器日志)
docker-compose.yaml
文件
Docker Compose 的核心配置文件,用于定义和管理多容器 Docker 应用程序。它通过声明式语法描述应用的各个服务、网络、卷等组件及其依赖关系,使得容器编排变得简单高效。以下是其核心作用详解:
定义多容器服务
- 服务编排:在一个文件中定义多个容器(服务),例如 Web 服务、数据库、缓存等。
services:web:image: nginx:latestports:- "80:80"db:image: postgres:13environment:POSTGRES_PASSWORD: example
配置容器参数
常用配置项:
image
:指定容器镜像(如nginx:latest
)。ports
:端口映射(主机端口:容器端口)。environment
:设置环境变量(如数据库密码)。volumes
:挂载主机目录或卷到容器。networks
:自定义容器网络。depends_on
:定义服务启动顺序(如 Web 服务依赖数据库启动)
一键启停与扩展
- 启动所有服务:
docker-compose up -d
(后台运行)。 - 停止服务:
docker-compose down
(清理容器、网络)。 - 扩展实例:
docker-compose up -d --scale web=3
启动 3 个 Web 容器实例
环境隔离与复用
- 多环境适配:通过
-f
指定不同文件(如docker-compose.prod.yaml
)切换生产/测试环境。 - 变量替换:使用
${VARIABLE}
结合.env
文件动态配置参数
资源限制与健康检查
资源限制
services:web:deploy:resources:limits:cpus: "0.5"memory: 512M
健康检查:
healthcheck:test: ["CMD", "curl", "-f", "http://localhost"]interval: 30stimeout: 10s
网络与存储管理
- 自定义网络:容器间通过服务名通信(如
db
主机名指向数据库容器)。 - 持久化数据:通过
volumes
声明卷,避免容器销毁时数据丢失。
与 Docker Swarm/Kubernetes 集成
- 生产级部署:通过
docker stack deploy
将 Compose 文件部署到 Swarm 集群。 - 转换为 Kubernetes:
docker-compose convert
生成 K8s 资源文件(需工具支持)。