前言
最近,复现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模板文件
等有需求的时候,在来学习吧。。