[Docker学习笔记补充] docker-compose项目

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参数使其在后台运行,并且退出时该项目所有的容器都会停止

[ * ]博客中转载的文章均已标明出处与来源,若无意产生侵权行为深表歉意,需要删除或更改请联系博主: 2245998470[at]qq.com

原文地址:https://www.cnblogs.com/yesec/p/15063886.html