记录docker-compse部署项目
一、安装docker-compse
curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
修改目录权限:
chmod +x /usr/local/bin/docker-compose
二、准备docker-compose.yml文件
文件实例(包含了docker容器中tomcat、mysql及redis的说明):
version: "2.0"
services:
##redis
app_redis:
image: redis:latest
##容器名称
container_name: "app_redis"
## 相当于run命令中的-p参数
#总是重启后启动
restart: always
ports:
- "6699:6379"
environment:
TZ: Asia/Shanghai
command: redis-server --requirepass myredispwd123
volumes:
- ./redis/data:/data
networks:
backend:
aliases:
- net_redis
##mysql
app_mysql:
image: mysql:5.5
##容器名称
container_name: "app_mysql"
## 相当于run命令中的-p参数
ports:
- "3388:3306"
environment:
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: ql123456
command:
--lower_case_table_names=1
volumes:
- ./mysql/conf:/etc/mysql/conf.d
- ./mysql/data:/var/lib/mysql
networks:
backend:
aliases:
- net_mysql
#tomcat服务名称
app_tomcat:
#容器名称
container_name: app_tomcat
#镜像名称
image: tomcat:7.0.63-jre8
#总是重启后启动
restart: always
#端口映射
ports:
- "7070:8080"
environment:
TZ: Asia/Shanghai
logging:
driver: "json-file"
options:
max-size: "500M"
max-file: "3"
#挂载
volumes:
- ./tomcat/logs:/usr/local/tomcat/logs
- ./tomcat/webapps:/usr/local/tomcat/webapps
- ./tomcat/conf:/usr/local/tomcat/conf
networks:
backend:
aliases:
- net_tomcat
networks:
backend:
重要属性说明(文档采用yml文件格式,需严格遵循yml语法):
文档结构:
//版本号
version:2.0
//应用名
services:
app1:
app2:
...
//网络
networks:
xxxx
image:镜像名称
container_name:容器别名(等同于docker run 中的 --name) ports:端口映射(等同于docker run 中的 -p) environment:环境变量(可在环境变量中定义时区、mysql密码等) command:覆盖容器启动后默认执行的命令,自定义命令 volumes:目录挂载(类似于-v)
三、网络配置(将容器配置到同一个网段)
在network中配置backend,然后为每一个容器定义别名aliases,然后在实际应用中就可以通过别名直接访问。示例:
redis:
redis_addr=net_redis redis_port=6379 redis_auth_need=yes redis_auth=myredispwd123
mysql:
dataSource.driver=com.mysql.jdbc.Driver dataSource.url=jdbc:mysql://net_mysql:3306/ql?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&autoReconnect=true&autoReconnectForPools=true dataSource.user=root dataSource.password=ql123456在
在容器中能够互相ping:

四、常用命令(将yml文件丢到任意一个目录,然后进入该目录执行命令)
1.启动命令
docker-compose up -d
2.停止命令(停止会删除容器)
docker-compose down
五、demo下载(包含mysql、redis、tomcat)
链接: https://pan.baidu.com/s/1kHJI2LUgwuj4Aq4MP8ZuOw 提取码: 7c2z
原文:https://www.cnblogs.com/zhoumango/p/13335156.html