docker-compose讲解
docker-compose简介
docker-compose安装
Ubuntu apt:
apt install docker-compose
centos 7.x yum :
docker-compose命令介绍
![](https://img2022.cnblogs.com/blog/2199868/202211/2199868-20221111213832471-1266566914.png)
#create #创建服务,但是容器不启动
![](https://img2022.cnblogs.com/blog/2199868/202211/2199868-20221111214400075-124785200.png)
![](https://img2022.cnblogs.com/blog/2199868/202211/2199868-20221111214905942-464729445.png)
kill #强制终止运行中的容器 需要通过 --service删除
![](https://img2022.cnblogs.com/blog/2199868/202211/2199868-20221111220315886-976051629.png)
![](https://img2022.cnblogs.com/blog/2199868/202211/2199868-20221111220837365-393432938.png)
![](https://img2022.cnblogs.com/blog/2199868/202211/2199868-20221111221046041-1360033375.png)
![](https://img2022.cnblogs.com/blog/2199868/202211/2199868-20221111221642756-191679008.png)
![](https://img2022.cnblogs.com/blog/2199868/202211/2199868-20221112145455180-59693000.png)
案例:基于docker-compose实现对nginx+tomcat web服务的单机编排
version: '3.8'
services:
nginx-server:
image: nginx:1.22.0-alpine
container_name: nginx-web1
# network_mode: bridge #网络1,使用docker安装后的默认网桥
expose:
- 80
- 443
ports:
- "80:80"
- "443:443"
networks: #网络2,使用自定义的网络,如果网络不存在则会自动创建该网络并分配子网,并且容器会有两块网卡
- front
- backend
links:
- tomcat-server
tomcat-server:
image: tomcat:7.0.93-alpine
# image: registry.cn-hangzhou.aliyuncs.com/zhangshijie/tomcat-myapp:v1
container_name: tomcat-app1
##network_mode: bridge #网络1,使用docker安装后的默认网桥
#expose:
# - 8080
#ports:
# - "8080:8080"
networks: #网络2,使用自定义的网络,如果网络不存在则会自动创建该网络并分配子网,并且容器会有一块网卡
- backend
links:
- mysql-server
mysql-server:
image: mysql:5.6.48
container_name: mysql-container
# network_mode: bridge #网络1,使用docker安装后的默认网桥
volumes:
- /data/mysql:/var/lib/mysql
#- /etc/mysql/conf/my.cnf:/etc/my.cnf:ro
environment:
- "MYSQL_ROOT_PASSWORD=12345678"
- "TZ=Asia/Shanghai"
expose:
- 3306
ports:
- "3306:3306"
networks: #网络2,使用自定义的网络,如果网络不存在则会自动创建该网络并分配子网,并且容器会有一块网卡
- backend
networks:
front: #自定义前端服务网络,需要docker-compose创建
driver: bridge
backend: #自定义后端服务的网络,要docker-compose创建
driver: bridge
default: #使用已经存在的docker0默认172.17.0.1/16的网络
进入nginx容器编辑 /usr/share/nginx/html/index/heml文件,使用192.168.84.135访问
如果需要通过nginx访问Tomcat需要配置nginx
首先进入nginx验证能否连通Tomcat:curl tomcat-server:8080/myapp/index.jsp # tomcat-server是docker-compose.ymal文件中的 tomcat-server
进入/etc/nginx/conf.d/default.conf文件中添加选项
重新加载: nginx -s reload