**
docker-compose简介
**
compose是定义和运行多个
docker
多个容器的应用,负责实现对docker
容器集的快速编排。compose
通过一个单独的docker-compose.yml
模板文件来定义一组相关联的容器为一个项目。应用场景:需要多个容器相互配合来完成某项任务的情况。例如要实现一个web项目,除了服务容器本身,往往还需要加上后端的数据库服务容器,甚至还包括负载均衡容器等等。
docker compose下载
curl -L https://github.com/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
//查看compose版本
docker-compose version
部署项目步骤
一、在 /usr/local
下创建你的项目文件夹名字最好用你的项目名,比如myproject
。
二、在项目文件夹myproject
中touch
一个名为docker-compose.yml
的文件。
touch docker-compose.yml
三、编辑此文件添加配置信息如下(这里只是tomcat
和mysql
的配置,如项目运行需要其他的配置添加即可,注意格式!粘贴的时候注意原样粘贴 :set paste
)。
version: '3.1'
services:
web:
restart: always
image: tomcat
container_name: ourproject
ports:
- 8080:8080
volumes:
- /usr/local/docker/ourproject/ROOT:/usr/local/tomcat/webapps/ROOT
mysql:
restart: always
image: mysql
environment:
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: 123456
command:
--default-authentication-plugin=mysql_native_password
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
--explicit_defaults_for_timestamp=true
--lower_case_table_names=1
ports:
- 3306:3306
volumes:
- mysql-data:/var/lib/mysql
volumes:
mysql-data:
保存。(命令: :wq!
)
四、回到项目所在的磁盘目录下进入cmd
五、在DOS命令行中输入命令 mvn clean package -Dmaven.test.skip=true
之后按回车等待运行完毕
六、进入项目文件夹中的类似crm_project-1.0.0-SNAPSHOT
的文件夹下所有文件全部打压缩包
七、将此压缩包上传至虚拟机的ourproject
文件夹下并解压
如果是zip压缩:
unzip [压缩包全名]
非zip压缩:
tar [压缩包全名]
八、检查是否运行tomcat
和mysql
容器,没有则运行
docker ps -a
tomcat运行命令:
docker run --name tomcat -p 8080:8080 -v $PWD/test:/usr/local/tomcat/webapps/test -d tomcat
mysql运行命令:
docker run -p 3306:3306 --name mysql \
-v /usr/local/docker/mysql/conf:/etc/mysql \
-v /usr/local/docker/mysql/logs:/var/log/mysql \
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql
九、打开mysql软件连接到容器,执行sql脚本将数据库导入与容器共享,容器里数据库信息将自动存放在/var/local/docker/volumes
文件夹中,可进入此文件夹查看
十、关闭已经运行的docker-compose
docker-compose down
十一、安全启动docker-compose
docker-compose up -d
十二、在浏览器地址中输入虚拟机的ip地址即可部署你的项目了!
注意:如果项目出现bug可以在XShell中打开日志查看报错原因
docker-compose logs web