webpack raw-loader 打包問題
介紹:
Docker-Compose專案是Docker官方的開源專案,負責實現對Docker容器叢集的快速編排。
Docker-Compose將所管理的容器分為三層,分別是 工程(project),服務(service)以及容器(container)。Docker-Compose執行目錄下的所有檔案(docker-compose.yml,extends檔案或環境變數檔案等)組成一個工程,若無特殊指定工程名即為當前目錄名。一個工程當中可包含多個服務,每個服務中定義了容器執行的映象、引數、依賴。一個服務當中可包括多個容器例項,Docker-Compose並沒有解決負載均衡的問題,因此需要藉助其它工具實現服務發現及負載均衡,比如 Consul。
Docker-Compose的工程配置檔案預設為docker-compose.yml,可通過環境變數COMPOSE_FILE或-f引數自定義配置檔案,其定義了多個有依賴關係的服務及每個服務執行的容器。
使用一個Dockerfile模板檔案,可以讓使用者很方便的定義一個單獨的應用容器。在工作中,經常會碰到需要多個容器相互配合來完成某項任務的情況。例如要實現一個Web專案,除了Web服務容器本身,往往還需要再加上後端的資料庫服務容器,甚至還包括負載均衡容器等。
_Compose允許使用者通過一個單獨的docker-compose.yml模板檔案(YAML 格式)來定義一組相關聯的應用容器為一個專案(project)。
Docker-Compose專案由Python編寫,呼叫Docker服務提供的API來對容器進行管理。因此,只要所操作的平臺支援Docker API, 就可以在其上利用Compose來進行編排管理。
Compose部署
YAML 檔案格式及編寫注意事項
YAML 是一種標記語言,它可以很直觀的展示資料序列化格式,可讀性高。類似於 XML資料描述語言,語法比 XML 簡單的很多。YAML 資料結構通過縮排來表示,連續的專案通過減號來表示,鍵值對用冒號分隔,陣列用中括號 [ ] 括起來, hash 用花括號 { } 括起來。
使用 YAML 時需要注意下面事項:
- 大小寫敏感
- 通過縮排表示層級關係
- 不支援製表符 tab 鍵縮排,只能使用空格縮排
- 縮排的空格數目不重要,只要相同層級左對齊,通常開頭縮排2個空格
- 用 # 號註釋
- 字元後縮排1個空格,如冒號 : 、逗號 , 、橫槓 -
- 如果包含特殊字元用單引號 ‘’ 引起來會作為普通字串處理,雙引號(“”):特殊字元作為本身向表示的意思
資料結構:
①、物件:鍵值對的字典
animal:pets
②、陣列:一組按次序排序的列表
-Cat
-Dog
-Goldfish
③、布林值
debug:true
debug:fasle
④、示例
#yaml
languages:["JAVA","Golang",“Python”]
-Java
-Golang
-Python
websites:
Baidu:www.baidu.com
Wangyi:www.163.com
#Json
{
languages:[
'Java'
'Golang'
'Python'
],
websites:{
Baidu:‘www.baidu.com’,
Wangyi:‘www.163.com’
}
}
Docker Compose配置常用欄位
欄位 | 描述 |
build | 指定Dockerfile檔名,要指定Dockerfile檔案需要再build標籤的子級標籤中使用Dockerfile標籤指定 |
dockerfile | 構建映象上下文路徑 |
context | 可以是dockerfile的路徑,或者是指向git倉庫的url地址 |
image | 指定映象 |
command | 執行命令,覆蓋容器啟動後預設執行的命令 |
container name | 指定容器名稱,由於容器名稱是惟一的,如果指定自定義名稱,則無法scale |
deploy | 指定部署和執行服務相關配置,只能在Swarm模式使用 |
environment | 新增環境變數 |
networks | 加入網路,引用頂級networks下條目 |
ports | 暴露容器埠,與-p相同,但埠不能低於60 |
volumes | 掛載一個宿主機目錄或命令捲到容器,命令卷要在頂級volums定義卷名稱 |
volumes_from | 從另一個服務或容器掛載卷,可選引數:ro和:rw |
hostname | 容器主機名 |
sysctls | 在容器內設定核心引數 |
links | 連線到另外一個容器,-服務名稱[:服務別名] |
restart | 重啟策略,預設no,always,no-failure,unless-stopped |
depends_on | 在使用Compose時,最大的好處就是少打啟動命令,但一般專案容器啟動的順序是有要求的,如果直接從上到下啟動容器,可能會因為容器依賴問題啟動失敗。例如在沒啟動資料庫容器的時候啟動應用容器,應用容器會因為找不到資料庫而退出。depends_on用於解決容器的依賴、啟動先後的問題 |
重啟策略介紹:
no | 預設策略,在容器退出時不重啟容器 |
on-failure | 在容器非正常退出時(退出狀態非0),才會重啟容器 |
on-failure:3 | 在容器非正常退出時重啟容器,最多重啟3次 |
always | 在容器退出時總是重啟容器 |
unless-stopped | 在容器退出時總是重啟容器,但是不考慮在Docker守護程序啟動時就已經停止了的容器 |
Docker Compose常用命令:
欄位 | 描述 |
build | 重新構建服務 |
ps | 列出容器 |
up | 建立和啟動容器 |
exec | 在容器裡面執行命令 |
scale | 指定一個伺服器啟動數量 |
top | 顯示容器程序 |
logs | 檢視容器輸出 |
down | 刪除容器、網路、資料卷和映象 |
stop/start/restart | 停止/啟動/重啟服務 |