-
概述
- docker compose 入門
- 后面簡稱 compose
- docker compose 入門
-
背景
- 裝好了 compose
- 給自己畫了一個 大餅
- 畫好大餅, 可以開始慢慢用了
-
環境
-
os
- centos7
-
docker-engine
- 19.03.12
-
docker-compose
- 1.26.2
-
image
- ubuntu
- 19.04
- ubuntu
-
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...
- 問題
- 問題1: 容器怎么沒了
3. 問題: 如何讓 ubuntu 容器啟動
-
概述
- 讓 ubuntu 容器成功啟動
-
思路
- 找到 tty 相關的字段, 就可以了
-
字段
- tty
-
位置
- 容器元素的子元素
-
示例
tty: true
-
- tty
-
嘗試
-
嘗試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 的兼容性文檔
- 舊版本可以通過調整, 變成 新版本
- compose file 的兼容性文檔
-