课件地址:
Docker 1小时快速上手教程,无废话纯干货
Docker笔记
现存问题
在上节,我们运行了两个容器:Web 项目 + Redis
如果项目依赖更多的第三方软件,我们需要管理的容器就更加多,每个都要单独配置运行,指定网络。
这节,我们使用 docker-compose 把项目的多个服务集合到一起,一键运行。
安装 Docker Compose
- 如果你是安装的桌面版 Docker,不需要额外安装,已经包含了。
- 如果是没图形界面的服务器版 Docker,你需要单独安装 安装文档
- 运行docker-compose检查是否安装成功,输出下面帮助文档就是安装成功了。
编写脚本
要把项目依赖的多个服务集合到一起,我们需要编写一个docker-compose.yml文件,描述依赖哪些服务
参考文档:https://docs.docker.com/compose/
在项目文件下创建docker-compose.yml文件,写入下面内容
version: "3.7"
services:
app:
build: ./
ports:
- 80:8080
volumes:
- ./:/app
environment:
- TZ=Asia/Shanghai
redis:
image: redis:5.0.13
volumes:
- redis:/data
environment:
- TZ=Asia/Shanghai
volumes:
redis:
注释版
version: "3.7" #版本
services: #要依赖的服务 1.web项目app ,2.redis
app:#web项目app
build: ./ #在当前目录bulid
ports: #暴露端口
- 80:8080
volumes:#挂载目录
- ./:/app #把当前目录挂载到容器/app目录
environment:#
- TZ=Asia/Shanghai #指定时区上海,默认北京
redis:#2.redis
image: redis:5.0.13 #使用已经编译好的redis镜像
volumes:
- redis:/data
environment:
- TZ=Asia/Shanghai
volumes:
redis:
跑起来
在docker-compose.yml 文件所在目录,执行:docker-compose up
就可以跑起来了。
命令参考:https://docs.docker.com/compose/reference/up/
进入容器命令行:docker-compose exec service-name sh
docker-compose exec redis sh
在后台运行只需要加一个 -d 参数docker-compose up -d
查看运行状态:docker-compose ps
停止运行:docker-compose stop
重启:docker-compose restart
重启单个服务:docker-compose restart service-name
进入容器命令行:docker-compose exec service-name sh
查看容器运行log:docker-compose logs [service-name]