經過前面的使用,咱們發現從鏡像啓動一個容器特複雜,映射端口、守護進程、掛載目錄、容器命名、特權模式等等,參數特別多。還有生產環境中須要有幾十個、上百個容器,然道咱們一個一個的去操做?有沒有好的解決辦法??
文檔地址: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文件,就能夠,再也不須要每次輸入大量的參數來啓動一個容器,懼怕輸錯、輸漏了