- 概述
- docker compose 入门
- 后面简称 compose
- 背景
- 装好了 compose
- 给自己画了一个 大饼
- 画好大饼, 可以开始慢慢用了
- 环境
- os
- centos7
- docker-engine
- 19.03.12
- docker-compose
- 1.26.2
- image
- ubuntu
- 19.04
1. compose: 基础行为模式
- 概述
- compose 的 基础行为模式
- 基础行为模式
- 编写 docker-compose.yml 文档
- 不熟悉 yml 的同学, 请自学
- 创建 compose 项目目录
- 目录名是 项目名
- 把 docker-compose.yml 放到目录下
- 进入 项目目录
- 启动项目
> docker-compose up
- 查看项目状态
> docker-compose ps -a
- 销毁项目
> docker-compose down
- 感觉
- 思路还是很清晰的
- 难点
- 就目前来看, 难点好像就是编写 docker-compose.yml
- 这玩意, 如果第一次接触, 确实很烦人
- 没事, 我们先写一个简单的
2. compose file
- 概述
- 写个最简单的 compose file
- 目的
- 用 compose file 的形式, 起来一个 ubuntu 容器
1. conpose file
- 概述
- 简介 compose file
- 格式
- yml
- 示例
version: "3.8"
services:
ubuntu:
image: ubuntu:19.04
- 字段
- version
- 版本
- compose file 的版本
- 意义
- 兼容
- 不同的 compose file 版本, 兼容不同的 docker-engine
- 语法与功能
- 不同版本有差别
- 所以
- 如果遇到了 不同的版本, 请先确认兼容, 在做操作
- 笔者
- 选择 3.8 的版本号
- services
- 服务
- 定义 容器
- 就像 docker run 命令一样
- 后面还会有其他的 字段, 来定义 网络, 卷 之类的东西
- ubuntu
- 容器的名字
- 实际产生的容器, 会叫这种名字
<project_name>_<container_name>_<no>
- image
- 镜像
- 使用 已经存在的镜像
- 本地
- 远程
- 当然, 后续还可以自己做镜像
2. 步骤
- 概述
- 执行的步骤
- 步骤
- 创建目录 demo01
- 进入 demo01, 创建 docker-compose.yml 文件
- 并将 示例 内容, 复制进去
- 在 demo01 目录下, 执行后续命令
- 命令
> docker-compose up
- 结果
- 启动成功
- 但是 容器立即退出 了
- 问题
- 问题1: 容器怎么没了
- 问题
- 容器为什么自己退出了
- 思路
- 之前用 docker run 命令的时候, 也有类似情况
- 需要加 -it/-dt, 才能让 ubuntu 容器不挂
- 也就是说, 可能需要一个 tty...
3. 问题: 如何让 ubuntu 容器启动
- 概述
- 让 ubuntu 容器成功启动
- 思路
- 找到 tty 相关的字段, 就可以了
- 字段
- tty
- 位置
- 容器元素的子元素
- 示例
tty: true
- 尝试
- 尝试1: 直接启动
- 启动成功
- 但是卡住了, 显示 attach, 但是没有后续
- 处理
- 方案1: ctrl + c 终止
- 方案2: ctrl + z 退出命令, 但是容器已经启动成功
- 尝试2: 后台启动
- 命令
> docker-compose up -d
- 结果
- 启动成功
- 验证
- 查看状态
- docker-cli
> docker ps -a
- docker-compose
> docker-compose ps
- 尝试连接
- docker-cli
> docker exec -it <container> /bin/bash
- 其他
- 销毁
- 命令
# compose file 下的所有东西, 全部干掉
# 而且不会影响 compose file 之外的容器
# 很轻松
> docker-compose down
- docker-compose 命令的执行
- 位置
- 需要在 compose file 的目录下执行
- 目录名称, 是项目名称
- 配置文件
- 默认叫做 docker-compose.yml
- 可以指定, 需要在 命令行里加参数
-f <config>
ps
- ref
- Compose file version 3 reference
- 官方文档
- 最下面有一个 点赞/反对 的控件
- 目前来看, 两边旗鼓相当啊
- docker-compose加了 -d 参数后启动容器还是处于exit 0 状态
- 感谢 SDingBa 的回答
- 搜索 docker-compose tty, 能搜出一大票
- 善用 搜索引擎...
- Compose file versions and upgrading
- compose file 的兼容性文档
- 旧版本可以通过调整, 变成 新版本
尽量尝试解释清楚; 自己校对能力有限, 如果有错误欢迎指出