docker-compose的简单使用
着重于docker-compose于MySQL的使用
实例派
docker-compose简单使用
- 构建命令:
docker-compose up -d
- 停止命令:
docker-compose stop
- 启动命令:
docker-compose start
搭建sql-labs
来一个sql-labs
试试,当前我们有的是网页文件、数据库文件
创建目录如下:
1 | - sql-labs |
docker-compose.yml
文件如下
- 建立MySQL所在容器与 web服务所在容器之间的连接
- 将数据库文件目录挂载到MySQL自动加载目录
- 将网页文件目录挂载到 WEB 服务主目录
1 | version: '3.1' # docker-compose语法版本号 |
links与depends_on
links表示建立容器之间的连接,即容器内服务能够互相访问,或者说网络融合。
depends_on表示容器依赖另一个容器,如果从运行顺序角度来看,被依赖的容器先于该容器运行。
搭建S02-57
可能大家有点懵,我们来整个简单的。试试今天新出的漏洞。大概有以下需求:
- 修改struts2中的测试例子的
struts2-showcase.war
- 放置于tomcat中运行
这里笔者的方案是选择把修改操作先做完,然后将这个测试例子挂载到tomcat的网页目录下
docker-compose.yml
文件如下
1 | version: '3.1' |
目录结构如下:
1 | ├── docker-compose.yml |
根据lgtm团队报告我们搜索并修改文件struts-actionchaining.xml
中的struts标签如下:
1 | <struts> |
这里我已经做好了,链接于我的Cveker项目,看看我们有什么不同。
MySQL环境变量
MySQL镜像环境变量
MYSQL_ROOT_PASSWORD
必选变量,指定将为MySQL root超级用户帐户设置的密码。
MYSQL_DATABASE
可选变量,允许您指定要在映像启动时创建的数据库的名称。如果提供了用户/密码(见下文),则该用户将被授予对该数据库的超级用户访问权限。
MYSQL_USER、MYSQL_PASSWORD
可选变量,创建新用户并设置该用户的密码。此用户将被授予MYSQL_DATABASE变量指定的数据库的超级用户权限(见上文),这两个变量为依赖关系。
MYSQL_ALLOW_EMPTY_PASSWORD
可选变量。设置为yes允许以root用户的空密码启动容器。即允许任何人获得完整的超级用户访问权限
MYSQL_RANDOM_ROOT_PASSWORD
可选变量。设置yes为为root用户生成随机初始密码(使用pwgen),生成的root密码将打印到stdout(GENERATED ROOT PASSWORD: …..)
MYSQL_ONETIME_PASSWORD
可选变量,初始化完成后,将root(不是MYSQL_USER!中指定的用户)设置为过期,在首次登录时强制更改密码。注意:此功能仅在MySQL 5.6+上受支持。
详细见MySQL的hub主页。