Docker compose可以通過編寫docker-compose.yaml文件管理并運行多個docker容器實例。
使用Docker Compose
編寫
docker-compose.yaml文件,注意文件命令約定:運行
docker-compose up -d
- 停止
docker-compose down
- 停止
docker-compose down
示例: Spring Boot容器連接MongoDB容器
第二節(jié)介紹了本地Spring Boot應(yīng)用連接MongoDB Docker容器;第三節(jié)介紹了制作Spring Boot應(yīng)用的Docker Image。
這里介紹Spring Boot容器訪問MongoDB容器,即容器之間的連接,更接近生產(chǎn)環(huán)境Docker容器的部署狀況。
- 編寫
docker-compose.yaml文件:
version: '3.3'
services:
#第一個docker
mongodb:
image: mongo:latest
#本地目錄映射docker數(shù)據(jù)目錄,做數(shù)據(jù)持久化 -v
volumes:
- /Users/hope/my_mongo_docker2:/data/db
ports:
- "27017:27017"
restart: always
#第二個docker
boot-demo:
#連接到mongodb容器
links:
- mongodb
depends_on:
- mongodb
image: ted005/spring-boot-mongo-demo:latest
# -p 本機端口映射到docker的80端口
ports:
- "8080:8080"
restart: always
- 修改
application.properties文件:
spring.data.mongodb.host=mongodb
這是因為Spring Boot應(yīng)用默認連接主機為localhost上的MongoDB實例;但在Spring Boot容器中,localhost指的是其容器本地,顯然無法連接;因此需要指定MongoDB所在主機。
- 之后運行
docker-compose up -d即可同時運行兩個容器。