docker-compose的使用
1.docker-compose.yml中支持的模板命令
参考:https://yeasy.gitbook.io/docker_practice/compose/compose_file
a. build 通过docker-compose在启动容器之前现根据Dockerfile构建镜像,然后根据构建镜像启动容器
b.command指令 覆盖容器启动后默认执行的命令
c.container_name 指令 用来指定docker-compose启动容器名称 注意:不推荐指定容器名称
d.depends_on 指令 解决容器的依赖.启动先后的问题
注意:当前服务不会等待,被依赖服务【完全启动】才会启动
e.environment 指令 用来给容器启动指定环境变量 相当于 docker run -e 选项
f.env_file 指令 用来给容器启动指定环境变量文件 相当于docker run -e 选项
g.expose 指令 用来指定构建镜像过程中容器暴露的端口号
h.image 指令 用来指定启动容器使用镜像是谁 相当于docker run image(镜像名)
i.networks 指令 用来指定启动容器使用网桥 相当于 docker run --network
j.ports 指令 用来指定宿主机和容器端口映射 相当于 docker run -p
k.volumes 指令 用来指定宿主机中容器目录映射 docker run -v
l.restart 指令 用来指定容器服务总是运行 docker run --restart=always
2.具体使用参考
version: "3.8" # 管理一组服务 services: web: build: ./ # 定Dockerfile上下文目录context 一切都是默认值 context: ./ # 用来指定Dockerfile上下文目录 dockerfile: Dockerfile # 指定Dockerfile文件名称 ports: # 暴露端口 - "8001:8001" #command: ["python","manage.py","runserver","0.0.0.0:8001"] 用来覆盖容器启动之后默认指令,类似于docker run image 覆盖的命令
3.docker-compose 相关指令
docker-compose 命令 项目/项目中某一个服务 注意:没有特殊说明,则默认都是操作整个项目
语法:docker-compose -f docker-compose.yml 命令 【选项】 【服务id】
a.up 【服务id】
docker-compose up 整个项目操作
docker-compose up 服务id 对当前docker-compose 中对应服务id容器
作用: 该命令十分强大,它将尝试自动完成构建镜像。(重新)创建服务,启动服务。并关联服务容器的一系列操作。
b.down 【服务id】
docker-compose down 整个项目操作
docker-compose down 【服务id】 对当前docker-compose中对应的服务id容器
作用: 关闭所有容器(某一个容器) 并移除网络。
c.exec 【服务id】
docker-compose exec 【服务id】
作用: 进入某个容器中
d. ps
docker-compose ps 【选项】
作用:列出所有容器
e.restart
docker-compose restart -t 【服务id】 整个项目或者某个服务重启 -t:指定时间重启
f.rm
docker-compose rm 项目/【服务id】 删除项目/服务id 注意: 删除停止的项目/容器 运行的无法删除
g.top
docker-compose top 项目/【服务id】 查看整个项目或者某个服务内运行的进程
h.unpause 恢复 docker-compose unpause 项目/服务id 恢复整个项目/某个服务
pause 暂停 docker-compose pause 项目/服务id 暂停整个项目/某个服务
i.logs
docker-compose logs 查看整个项目/服务id 的日志 -f (实时)
注意上述命令中重点的是: docker-compose up /down
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)