Docker compose可以通過編寫docker-compose.yaml
文件管理并運行多個docker容器實例。
使用Docker Compose
編寫
docker-compose.yaml
文件,注意文件命令約定:運行
docker-compose up -d
- 停止
docker-compose down
- 停止
docker-compose down
示例: Spring Boot容器連接MongoDB容器
第二節介紹了本地Spring Boot應用連接MongoDB Docker容器;第三節介紹了制作Spring Boot應用的Docker Image。
這里介紹Spring Boot容器訪問MongoDB容器,即容器之間的連接,更接近生產環境Docker容器的部署狀況。
- 編寫
docker-compose.yaml
文件:
version: '3.3'
services:
#第一個docker
mongodb:
image: mongo:latest
#本地目錄映射docker數據目錄,做數據持久化 -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應用默認連接主機為localhost
上的MongoDB實例;但在Spring Boot容器中,localhost
指的是其容器本地,顯然無法連接;因此需要指定MongoDB所在主機。
- 之后運行
docker-compose up -d
即可同時運行兩個容器。