12.使用Docker Compose容器編排工具

經過前面的使用,咱們發現從鏡像啓動一個容器特複雜,映射端口、守護進程、掛載目錄、容器命名、特權模式等等,參數特別多。還有生產環境中須要有幾十個、上百個容器,然道咱們一個一個的去操做?有沒有好的解決辦法??

文檔地址:html

https://docs.docker.com/compo...git

Docker Compose 容器編排工具,也能夠認爲是一個構建工具,能夠配置並啓動多個容器,適合複雜業務場景。github

安裝:web

一切按照官方文檔來:https://docs.docker.com/compo...docker

sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

compose的配置文件使用yaml格式centos

Docker Compose 官方入門文檔:app

https://docs.docker.com/compo...curl

建立一個項目目錄工具

mkdir composetest

cd composetest

建立一個docker-compose.yml文件,並編寫下面的內容測試

version: "3"
services:
    web1:
        container_name: web1
        image: "centos:httpd"
        ports:
            - "8080:80"
        privileged: true
        volumes:
            - "/app/www/web1/:/var/www/html/"
        command: ['/usr/sbin/init']
    web2:
        container_name: web2
        image: "centos:httpd"
        ports:
            - "8081:80"
        privileged: true
        volumes:
            - "/app/www/web2/:/var/www/html/"
        command: ['/usr/sbin/init']

// services:定義一組服務
// web1:服務名
// container_name:容器名稱
// ports:端口映射
// privileged:特權
// volumes:目錄掛載

// version:表明當前使用的版本,compose經歷了多個版本,每一個版本的支持的參數以及一些命令是不同的

// 關於version介紹的官方文檔:https://docs.docker.com/compose/compose-file/

能夠將咱們編寫的yaml格式的文件放入在線檢查工具進行效驗格式是否正確

yaml在線檢查工具:http://www.yamllint.com

使用docker-compose啓動容器

啓動以前先確認是否有正在運行的容器佔用了端口!!!

// 查看docker-compose幫助:docker-compose --help
// docker-compose up:建立並啓動容器

docker-compose up -d

// -d 後臺運行
// 更多參數幫助:docker-compose up --help

在宿主機的掛載到容器中的目錄裏面建立html,而後測試容器是否正常訪問

echo "web1" > /app/www/web1/index.html

echo "web2" > /app/www/web2/index.html

// 訪問web1
curl 127.0.0.1:8080

// 訪問web2
curl 127.0.0.1:8081

不出意外的話,正常訪問!

咱們如今經過一條命令就能夠快速建立容器並啓動了

關閉運行的容器

// 默認關閉全部
docker-compose stop

// 能夠指定關閉其中某個
docker-compose stop web1

刪除容器

// 刪除全部
docker-compose rm

// 能夠指定刪除其中某個
docker-compose rm web1

docker-compose的全部操做必須在docker-compose.yml文件所在目錄中進行。

之後咱們只須要編寫compose.yml文件,就能夠,再也不須要每次輸入大量的參數來啓動一個容器,懼怕輸錯、輸漏了

文章出處:http://www.mi360.cn/articles/19

相關文章
相關標籤/搜索