记录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