記錄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
