docker-compose:应用3个app的微服务(网络、共享分区)
本文通过发布3个APP(App1,App2,App3),来演示Docker在服务发布、网络、共享分区以及信息隔离与连通方面的工作: 1. 新建docker-compose.yml,放在任意目录下version: '2'services:App1:build: /local/docker/dockerApp1image:studyapp1:0.0.1restar...
本文通过发布3个APP(App1,App2,App3),来演示Docker在服务发布、网络、共享分区以及信息隔离与连通方面的工作:
1. 新建docker-compose.yml,放在任意目录下
version: '2'
services:
App1:
build: /local/docker/dockerApp1
image:studyapp1:0.0.1
restart: always
ports:
- "8030:8080"
volumes:
- /local/docker/log:/docker/logs
container_name: zcy1
networks:
- "netName1"
App2:
build: /local/docker/dockerApp1
image: studyapp1:0.0.1
restart: always
ports:
- "8031:8080"
volumes:
- /local/docker/log:/docker/logs
container_name: zcy2
networks:
- "netName1"
App3:
build: /local/docker/dockerApp1
image: studyapp1:0.0.1
restart: always
ports:
- "8032:8080"
volumes:
- /local/docker/log:/docker/logs
container_name: zcy3
networks:
- "netName2"
networks:
netName1:
driver: bridge
netName2:
driver: bridge
2. 后台启动,在compose文件的目录下面执行:
docker-compose up -d
3. 查看容器运行状态
docker-compose ps
4. 其他命令:
[root@docker compose]# docker-compose restart #重启所有容器
[root@docker compose]# docker-compose restart App1 #重启App1
[root@docker compose]# docker-compose stop #停止所有容器
[root@docker compose]# docker-compose stop App1 #停止App1
5.验证网络隔离:
a.到App1 ping App2 是通的,但是App1 ping App3 不通
执行: docker-compose exec App1 bash 进入服务App1中,ping 的方式可以连接
此方式可以微服务之间调用,就用服务名称作为ip
curl App2:8080/xxx 是可以访问到App2 服务的
6.
volumes:
- /local/docker/log:/docker/logs
挂载后,3个服务里面的日志都打印到宿主机
/local/docker/log 里面
7. 将微服务不打入镜像的方法
将打包好的微服务,放在宿主机的目录下,通过挂载的方式到容器中:
app4:
image: public-docker-virtual.artnj.zte.com.cn/daas/jdk8:0.0.1
restart: always
ports:
- "8033:8080"
volumes:
- /local/daasdocker/log:/daas/logs
- /local/daasdocker/app:/daas/app
command:
- java
- -jar
- /daas/app/study.jar
- --server.port=8080
更多推荐
所有评论(0)