Docker-compose简介
Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。
Compose项目目前在Github上进行维护,其定位是“Defining and running complex applications with Docker”,前身是Fit,因而也兼容Fit的模板文件。
Dockerfile可以让用户管理一个单独的应用容器,而Compose则允许用户在一个模板(YAML格式)中定义一组相关联的应用容器(这组容器被称为一个“project”,即项目),例如一个Web应用容器再加上一个数据库容器构成的一个项目。
Compose项目使用Python编写,实际上通过调用Docker的API实现其功能。
Docker-compose安装
Mac/Windows系统
Docker-Desktop for Mac/Windows自带docker-compose项目的二进制文件,安装Docker-Desktop后可直接使用:
docker-compose --version
Linux系统
方法一:二进制包安装
在 https://github.com/docker/compose/releases 可以找到对应的二进制包
下载完成后在对应目录执行该安装文件即可(执行前需要给二进制文件执行权限)
方法二:pip安装
Docker-compose也可以使用pip安装(注意要使用pip3安装):sudo pip3 install docker-compose
Docker-compose卸载
二进制文件安装删除对应的二进制文件即可卸载
pip安装执行sudo pip3 uninstall docker-compose
即可卸载
Docker-compose使用
使用docker-compose.yml搭建项目
案例:搭建Vulhub漏洞复现环境
下载漏洞复现环境:wget https://github.com/vulhub/vulhub/archive/master.zip -O vulhub-master.zip
解压漏洞环境: unzip ./vulhub-master.zip
进入目录:cd vulhub-master/
进入fastjson 1.2.47 RCE目录:cd fastjson/1.2.47-rce
自动化编译环境:docker-compose build
目录下一定要有docker-compose.yml
文件
启动整个环境:docker-compose up
也可以加上-d
参数来使容器后台运行
可以看到我们的环境已经成功搭建:
docker-compose.yml 编写
//待更新
Docker-compose命令
查看某个命令的具体帮助:docker-compose [COMMAND] --help
常用选项:
--verbose
输出更多调试信息
--version
查看版本信息
-f/--file FILE
使用特定的docker-compose模板文件,默认为docker-compose.yml
-p/--project-name NAME
指定项目名称,默认使用搭建目录名称
常用命令:
docker-compose build
构建或重构一个新的服务,服务一旦构建后带上一个标记名,可以随时在项目目录下运行该命令来构建服务
docker-compose help
获取帮助
docker-compose kill
通过发送SIGKILL信号来中止容器,也可以使用-s SIGN
来发送指定命令
docker-compose logs
查看服务的输出
docker-compose port
打印绑定的公共端口
docker-compose ps
列出所有容器
docker-compose pull [IMAGES]
拉取一个镜像
docker-compose rm [IMAGES]
删除一个镜像
docker-compose run [IMAGES] [COMMAND]
启动一个服务并执行特定命令
docker-compose scale SERVICE=NUMBER
启动多个同一服务的容器
docker-compose stop
停止正在运行的项目(多个容器),但不删除项目
docker-compose start
启动停止运行的项目
docker-compose up
构建、创建、启动、链接一个项目相关的容器,可以使用-d
参数使其在后台运行,并且退出时该项目所有的容器都会停止