docker-compose使用
#
最近,复现vulhub的环境过程中,使用到了这个工具,既然遇到了,那就总结一下吧
docker和docker-compose的区别#
Dockerfile 记录单个镜像的构建过程,
docker-compse.yml 记录一个项目(project, 一般是多个镜像)的构建过程。
有些教程用了 dockerfile+docker-compose, 是因为 docker-compose.yml 本身没有镜像构建的信息,如果镜像是从 docker registry 拉取下来的,那么 Dockerfile 就不需要;如果镜像是需要 build 的,那就需要提供 Dockerfile.
docker-compose是编排容器的。例如,你有一个php镜像,一个mysql镜像,一个nginx镜像。如果没有docker-compose,那么每次启动的时候,你需要敲各个容器的启动参数,环境变量,容器命名,指定不同容器的链接参数等等一系列的操作,相当繁琐。而用了docker-composer之后,你就可以把这些命令一次性写在docker-composer.yml文件中,以后每次启动这一整个环境(含3个容器)的时候,你只要敲一个docker-composer up命令就ok了。
dockerfile的作用是从无到有的构建镜像。它包含安装运行所需的环境、程序代码等。这个创建过程就是使用 dockerfile 来完成的。Dockerfile - 为 docker build 命令准备的,用于建立一个独立的 image ,在 docker-compose 里也可以用来实时 build docker-compose.yml - 为 docker-compose 准备的脚本,可以同时管理多个 container ,包括他们之间的关系、用官方 image 还是自己 build 、各种网络端口定义、储存空间定义等
参考https://blog.csdn.net/DDFFR/article/details/77049118
docker-compose的常用命令#
$ docker-compose up #这个命令一定要记住,每次启动都要用到,只要学会使用的人记住这个就好了
$ docker-compose ps #列出项目中目前的所有容器
$ docker-compose stop
$ docker-compose logs #查看服务容器的输出
$ docker-compose build
$ docker-compose run ubuntu ping www.baidu.com # 在指定容器上执行一个ping命令。
$ docker-compose pause [SERVICE...] # 暂停一个服务容器
$ docker-compose port #显示某个容器端口所映射的公共端口。
编写docker-compose.yml模板文件#
作者:kzd的前沿思考
出处:https://www.cnblogs.com/Fram3/p/15763958.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南