Docker Compose - 簡介
前言
由於工作上常使用到Docker
建置開發的環境,並且會有很多服務需要一起啟動…等等,所以有一大堆的Docker-compose
,再一次的電腦重新升級與安裝後,就想要將其整理上來部落格做個留存。另外在下面會根據官方的違建,做一些簡單的說明,後面就會將各種的服務直接分享上來。
如需要更深入學習和了解Docker
和Docker-compose
,建議在官方上做學習或是其他的菜鳥教學都可以很好的理解學習。
註:更多更詳細的介紹,或是問題的解決,請自行上網找尋唷。
Docker Compose 版本
注意:
Compose V1
不再接收更新,並且在2023年6月
之後將在Docker Desktop
的新版本中不可用。Compose V2
包含在Docker Desktop
的所有當前支持版本中。註:有關更多信息請參見V2。
另外版本之間的差異和升級,可以參考Legacy versions。
Docker Compose 簡介
- 定義和運行多容器
Docker
應用程序的工具。 - 使用
docker-compose.yaml
的YAML
文件來配置應用程序的服務。 - 使用單個命令
docker compose up
,可以從您的配置創建並啟動所有服務。
它還具有用於管理應用程序整個生命週期的命令:
- 可以很簡單的開始、停止和重建服務。
- 查看正在運行的服務狀態。
- 運行服務的日誌輸出。
- 在服務上運行一次性命令。
Compose
使其有效的關鍵特徵是:
- 在單個主機上有多個隔離環境。
- 創建容器時保留資料。
- 僅重新創建已更改的容器。
- 支持變量並在環境之間移動組合。
註:上面這些特性或許不能夠透過簡單幾句話就理解,建議身體例行,直接照著官方的 getting started 來學習。
Docker Compose 分享目錄:
以下是目前預計會整理分享上來的服務清單<部分有區分單節點與集群>:
- blackhole:黑洞服務器(一個
HTTP
服務器,它捕獲所有的東西並記錄下來) - miniserve:文件服務器(一種
CLI
工具,可通過HTTP提供文件和目錄) - nsq:
NSQ
是一個基於Go
語言的分佈式實時消息平台。 - subversion:
Apache Subversion
,一個開放原始碼的版本控制系統。 - redis:
Redis
是一個使用ANSI C
編寫的開源、支援網路、基於記憶體、分散式、可選永續性的鍵值對儲存資料庫。 - [cassandra]:
Apache Cassandra
是一套開源分散式NoSQL
資料庫系統。 - [clickhouse]:
ClickHouse
是一個用於線上分析處理的開源列式資料庫。 - [rabbitmq]:
RabbitMQ
是實現了進階訊息佇列協定的開源訊息代理軟體。- single
- [cluster]
- [postgresql]:
PostgreSQL
是一個開源的物件-關聯式資料庫管理系統。 - [kafka]:
Kafka
是由Apache
軟體基金會開發的一個開源流處理平台。- [single]
- [cluster]
- [tarantool]:
Tarantool
是一個開源的NoSQL
資料庫管理系統和Lua
應用伺服器。- [single]
- [cluster]
- [zookeeper]:
Apache ZooKeeper
為大型分散式計算提供開源的分散式組態設定服務、同步服務和命名註冊。- [single]
- [cluster]
- [elasticsearch]:
Elasticsearch
是一個基於Lucene
庫的搜尋引擎。- [single]
- [cluster]
- [mariadb]:
MariaDB
是MySQL
關聯式資料庫管理系統的一個復刻,由社群開發、商業支援,旨在保持在GNU GPL
下開源。 - [nats]:
NATS
是一個開源消息傳遞系統。 - [mysql]:
MySQL
原本是一個開放原始碼的關聯式資料庫管理系統。 - [mongodb]:
MongoDB
是一種文件導向的資料庫管理系統。 - [nginx]:
Nginx
是非同步框架的網頁伺服器,也可以用作反向代理、負載平衡器和HTTP
快取。 - [timescaledb]:
TimescaleDB
是由Timescale Inc.
開發的開源時間序列數據庫。 - …
註:以上僅僅是部分…後面有機會會慢慢補充。