目录
- docker-compose介绍
- 创建docker-compose.yml文件
- 参数解析
- 执行yml文件
安装docker请移步=》
安装docker
安装tomcat、mysql、nginx请移步=》安装步骤
docker-compose介绍
Compose 是用于定义和运行多容器 Docker 应用程序的工具。
通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。
然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。
直白一点其实就是将多个容器连接起来,使用docker-compose运行yml配置文件,一键启动多个容器
使用场景:比如tomcat+mysql中项目需要配置mysql的ip地址进行连接,而在docker容器中每个容器的ip是不固定的,所以就需要我们手动去连接。
这里会用到docker中的 --link
。
而单纯使用--link
虽然也能连接两个服务,但是使用不方便,而且连接也是单向的。连接多个服务就比较麻烦。
所以推荐使用docker-compose来连接并启动服务
创建docker-compose.yml文件
保持容器结构整洁,使用前可先删除之前启动的容器 [docker rm 容器名称]
后面使用dokcer-compose执行的时候相当于创建并启动容器
在当前文件加创建docker-compose.yml文件,文件内容如下:
*注意:这里的缩进只能使用空格,使用tab会报错
version: '3.1'
services:
mysql:
restart: always
image: hy:v1
container_name: mysql
ports:
- 3306:3306
environment:
MYSQL_ROOT_PASSWORD: 123456
tomcat:
restart: always
image: tomcat:jdk8-openjdk
container_name: tomcat
ports:
- 8080:8080
links:
- mysql:mysql
nginx:
restart: always
image: nginx:latest
container_name: nginx
ports:
- 9090:80
links:
- tomcat:tomcat
上面是我自己用来连接tomcat、mysql和nginx使用的配置文件
参数解析
单独拿出tomcat的配置解析一下
tomcat: //这里是给你的服务起的别名
restart: always //开机启动
image: tomcat:jdk8-openjdk //镜像名称加tag,[docker image]查询
container_name: tomcat //设置启动后容器的名称,这里的名称不要与存在的容器重名
ports: //端口映射
- 8080:8080
links:
- mysql:mysql //冒号前面是需要连接的服务名,后面是tomcat访问的名称
//如在tomcat中ping mysql 就使用
// docker exec -it tomcat ping mysql
//如果是 mysql:m1 就使用 docker exec -it tomcat ping m1
//所以项目中连接mysql就可以使用这个地址
// url: jdbc:mysql://mysql:3306
执行yml文件
在yml文件目录下执行docker-compose up -d
出现
Creating mysql ... done
Creating tomcat ... done
Creating nginx ... done
就说明启动成功了
不过想启动项目,还得配置nginx,mysql要创建数据库和表,并初始化数据。