1. 程式人生 > >Docker第八篇-docker-compose教程(介紹,安裝,入門示例)

Docker第八篇-docker-compose教程(介紹,安裝,入門示例)

文章目錄

docker-compose介紹

Compose 專案是 Docker 官方的開源專案,負責實現對 Docker 容器叢集的快速編排。
Compose 定位是:定義和執行多個 Docker 容器的應用。
我們知道使用一個 Dockerfile 模板檔案,可以讓使用者很方便的定 義一個單獨的應用容器。然而,在日常工作中,經常會碰到需要多個容器相互配合來完成某 項任務的情況。例如要實現一個 Web 專案,除了 Web 服務容器本身,往往還需要再加上後 端的資料庫服務容器,甚至還包括負載均衡容器等。 Compose 恰好滿足了這樣的需求。它允許使用者通過一個單獨的 docker-compose.yml 模板檔案 (YAML 格式)來定義一組相關聯的應用容器為一個專案(project)。
有了Compose,我們就不需要再一個個元件去寫一份Dockerfile,只需要將整體環境同一起來,寫在一份docker-compose.yml檔案即可


Compose 中有兩個重要的概念:

  • 服務 ( service ):一個應用的容器,實際上可以包括若干執行相同映象的容器例項。
  • 專案 ( project ):由一組關聯的應用容器組成的一個完整業務單元,在 dockercompose.yml 檔案中定義。

docker-compose安裝

docker-compose在github上開源,地址為:https://github.com/docker/compose/releases
compose的yml檔案版本和docker版本對應關係如下:
在這裡插入圖片描述

安裝docker(已安裝最新的請忽略此步驟)

老版本的Docker包叫做docker或者docker-engine,如果安裝了老版本的docker得先解除安裝然後再安裝新版本的docker。docker的發展非常迅速,apt源的更新往往比較滯後。所以docker官網推薦的安裝方式都是下載docker安裝指令碼安裝。
解除安裝老舊的版本(若未安裝過可省略此步驟):

apt-get remove docker docker-engine docker.io 

安裝最新的docker

curl -fsSL get.docker.com -o get-docker.sh
sh get-docker.sh

確認安裝成功

docker run hello-world

安裝的docker版本號如下:
在這裡插入圖片描述

docker-compose安裝與解除安裝

方式一:從github上下載進行安裝(常用
這裡請注意docker和docker-compose對應關係

curl -L https://github.com/docker/compose/releases/download/1.23.0-rc2/docker-compose-`
uname -s`
-`uname -m` -o /usr/local/bin/docker-compose #新增可執行許可權 chmod +x /usr/local/bin/docker-compose #檢視安裝版本 docker-compose version

方式二:使用pip安裝

#安裝pip
yum -y install epel-release
yum -y install python-pip

#確認版本
pip --version

#更新pip
pip install --upgrade pip

#安裝docker-compose
pip install docker-compose 

#檢視版本
docker-compose version

解除安裝方式:

#如果是github下載方式安裝的,刪除二進位制檔案即可。
rm /usr/local/bin/docker-compose

#如果是通過 pip 安裝的,則執行如下命令即可刪除。
pip uninstall docker-compose

安裝的版本號如下:
在這裡插入圖片描述

docker-compose簡單示例

使用docker-compose啟動一個nginx
在/home/nginx下新建docker-compose.yml檔案,輸入如下內容:

version: "3" # 表示該docker-compose.yml檔案使用的是Version 3 file format
services:  # 為project定義服務
  nginx:  # 指定服務名稱
    image: nginx  # 指定服務所使用的映象
    ports:  # 暴露埠資訊
      - 80:80

在yml檔案所在的當前目錄使用docker-compose up啟動

也可以使用後臺啟動命令:docker compose up -d

[[email protected] nginx]# vim docker-compose.yml
[[email protected] nginx]# docker-compose up
Creating network "nginx_default" with the default driver
Pulling nginx (nginx:)...
latest: Pulling from library/nginx
f17d81b4b692: Pull complete
d5c237920c39: Pull complete
a381f92f36de: Pull complete
Creating nginx_nginx_1_5666499f560d ... done
Attaching to nginx_nginx_1_40e5a205acb7

瀏覽器訪問:
在這裡插入圖片描述