Compose簡介:
Compose 項目是 Docker 官方的開源項目,負責實現對 Docker 容器集羣的快速編排。Compose 定位是 「定義和運行多個 Docker 容器的應用(Defining and running multicontainer Docker applications)」,其前身是開源項目 Fig。
使用一個 Dockerfile 模板文件,可以讓用戶很方便的定義一個單獨的應用容器。然而,在日常工作中,經常會碰到需要多個容器相互配合來完成某項任務的情況。例如要實現一個 Web 項目,除了 Web 服務容器本身,往往還需要再加上後端的數據庫服務容器,甚至還包括負載均衡容器等。
Compose 恰好滿足了這樣的需求。它允許用戶通過一個單獨的 docker-compose.yml 模板文件(YAML 格式)來定義一組相關聯的應用容器爲一個項目(project)。
Compose 中有兩個重要的概念:
- 服務 ( service ):一個應用的容器,實際上可以包括若干運行相同鏡像的容器實例
- 項目 ( project ):由一組關聯的應用容器組成的一個完整業務單元,在 dockercompose.yml 文件中定義。
Compose 的默認管理對象是項目,通過子命令對項目中的一組容器進行便捷地生命週期管理。可見,一個項目可以由多個服務(容器)關聯而成, Compose 面向項目進行管理
Compose 項目由 Python 編寫,實現上調用了 Docker 服務提供的 API 來對容器進行管理。因此,只要所操作的平臺支持 Docker API,就可以在其上利用 Compose 來進行編排管理。
環境介紹:
CentOS 7.5
Docker 19.03.8
Docker Engine
Docker Compose 1.25.5
下載:
https://github.com/docker/compose/releases
安裝Docker-Compose方法:
Compose 可以通過 Python 的包管理工具 pip 進行安裝,也可以直接下載編譯好的二進制文件使用,甚至能夠直接在 Docker 容器中運行。前兩種方式是傳統方式,適合本地環境下安裝使用;最後一種方式則不破壞系統環境,更適合雲計算場景。Docker for Mac 、 Docker for Windows 自帶 docker-compose 二進制文件,安裝 Docker 之後可以直接使用。Linux 系統請使用以下介紹的方法安裝。
1. 二進制文件安裝 :
[root@localhost ~]# curl -L "https://github.com/docker/compose/releases/download/1.25.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 638 100 638 0 0 116 0 0:00:05 0:00:05 --:--:-- 157
100 16.3M 100 16.3M 0 0 177k 0 0:01:34 0:01:34 --:--:-- 142k
[root@localhost ~]# chmod +x /usr/local/bin/docker-compose
查看版本:
[root@localhost ~]# docker-compose version
docker-compose version 1.25.4, build 8d51620a
docker-py version: 4.1.0
CPython version: 3.7.5
OpenSSL version: OpenSSL 1.1.0l 10 Sep 2019
卸載:
對於卸載如果是二進制包方式安裝的,刪除二進制文件即可。
[root@localhost ~]# rm /usr/local/bin/docker-compose
2. PIP方式安裝:
安裝pip:
[root@localhost ~]# yum -y install epel-release
[root@localhost ~]# yum -y install python-pip
查看pip版本:
[root@localhost ~]# pip --version
pip 8.1.2 from /usr/lib/python2.7/site-packages (python 2.7)
更新pip:
[root@localhost ~]# pip install --upgrade pip
Collecting pip
Downloading https://files.pythonhosted.org/packages/54/0c/d01aa759fdc501a58f431eb594a17495f15b88da142ce14b5845662c13f3/pip-20.0.2-py2.py3-none-any.whl (1.4MB)
100% |████████████████████████████████| 1.4MB 23kB/s
Installing collected packages: pip
Found existing installation: pip 8.1.2
Uninstalling pip-8.1.2:
Successfully uninstalled pip-8.1.2
Successfully installed pip-20.0.2
安裝docker-compose:
[root@localhost ~]# pip install docker-compose
查看docker-compose版本:
[root@localhost ~]# docker-compose version
卸載:
[root@localhost ~]# pip uninstall docker-compose