比如 springboot服务 需要mysql支持
针对每个单独创建文件夹,构建镜像
bsbdj-app
bsbdj-db
build.sh
docker-compose.yml
readMe.txt
cd bsbdj-app 构建Dockerfile
FROM openjdk:8u222
WORKDIR /usr/local/bsbdj
ADD bsbdj.jar .
ADD application.yml .
ADD application-dev.yml
EXPOSE 80
CMD ["java","-jar","bsbdj.jar"]
docker build -t mashbing.com/bsbdj-app .
cd bsbdj-db 将初始化脚本放进去 init.sql 编写Dockerfile
FROM mysql:5.7
WORKDIR /docker-entrypoint-initdb.d
ADD init.db .
docker build -t mashibing.com/bsbdj-db .
docker run -d -e MYSQL_ROOT_PASSWORD=root msb.com/bsbdj-db
MYSQL_ROOT_PASSWORD 对应docker官方mysql的变量定义,有很多需要自己查询
以上运行只是测试
编写docker-compose.yml 必须这样命名
services:
#子选项,db是服务名,也是为容器命名,网络主机名等
db:
# 对哪个目录下的dockerfile创建并解析,生成镜像
build: ./bsbdj-db/
#容错机制,宕机重启
restart: always
#设置环境变量
environment:
MYSQL_ROOT_PASSWORD: root
# 应用对应app
app:
build: ./bsbjd-app/
# 设置依赖,这里需要依赖数据库,有了依赖就互联互通
depends_on:
- db
#设置端口映射
ports:
- "80:80"
#
restart: always
启动 docker-compose up
查看日志 docker-compose logs [容器名 比如service下的 app]
关闭 docker-compose down