今天給大家介紹一下docker-compose的用法,大家可以互相交流!1、簡介docker-compose是Docker官方提供的用于定義和管理運行多個Docker容器的開源容器編排工具。可以使用YML文件來配置應用程序需要的所有服務,然后使用docker-compose運行命令,就可以解析YML文件配置創建并啟動文件中配置的所有docker服務。可以把docker-compose理解為一個自動化運維命令的打包腳本集合,只要腳本編寫的沒問題,就可以執行一條命令啟動所關聯的所有服務。GitHub:https://github.com/docker/compose 2、docker-compose的好處降低運維成本:部署效率高、可控制容器的啟動順序、項目快速遷移、開發生產環境保持一致等。一般一個系統的部署可能涉及到tomcat、mysql、redis、nginx、mongodb等應用,如果采用容器部署的話可能涉及十多個容器(中小項目),每個容器都單獨維護的話,會非常繁瑣,可能每個容器需要執行幾十個命令,效率非常低。通過docker-compose可以提前編寫好腳本,等上線部署的時候幾分鐘就可以搞定了。比起傳統的項目部署方式效率大大提升了。還可以達到一次編寫腳本,達到多次部署的效果。開源項目推廣:開源項目作者可以編寫docker-compose腳本,讓使用者可以快速搭建環境、也可以避免因為硬件環境造成項目各種報錯的情況。也方便了開源項目的推廣。3、原理docker-compose項目是由Python編寫的,其實就是調用了Docker服務提供的API來對容器進行管理,因此,只要所在的操作系統的平臺支持Docker API,就可以在其上利用Compose來進行編排管理。流程:利用Dockerfile定義運行環境→使用docker-compose.yml定義組成應用的各服務→運行docker-compose up啟動應用4、安裝教程4.1 二進制方式安裝(推薦國內鏡像) sudo curl -L "https://github.com/docker/compose/releases/download/1.29.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo curl -L https://get./docker/compose/releases/download/1.29.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
下載完之后可以看下 /usr/local/bin 這個目錄有沒有 docker-compose 這個文件 # 查看一下version,顯示有版本號那就說明安裝成功了 docker-compose -version
sudo rm /usr/local/bin/docker-compose
4.2 通過python的pip方式安裝yum -y install epel-release yum -y install python-pip pip install --upgrade pip pip -V pip install docker-compose docker-compose -version
sudo pip uninstall docker-compose
5、常用命令下面給大家整理常用的docker-compose命令注意:大部分的compose命令都需要到docker-compose.yml文件所在的目錄下才能執行docker-compose -h # 查看幫助 docker-compose up # 創建并運行所有容器 docker-compose up -d # 創建并后臺運行所有容器 docker-compose -f docker-compose.yml up -d # 指定模板 docker-compose down # 停止并刪除容器、網絡、卷、鏡像。 docker-compose logs # 查看容器輸出日志 docker-compose logs -f 容器名 查看容器實時日志 docker-compose pull # 拉取依賴鏡像 dokcer-compose config # 檢查配置 dokcer-compose config -q # 檢查配置,有問題才有輸出 docker-compose restart # 重啟服務 docker-compose start # 啟動服務 docker-compose stop # 停止服務 docker-compose up -d nginx 構建建啟動nignx容器 docker-compose exec nginx bash 登錄到nginx容器中 docker-compose ps 顯示所有容器 docker-compose build nginx 構建鏡像 docker-compose build --no-cache nginx 不帶緩存的構建 docker-compose config -q 驗證(docker-compose.yml)文件配置,當配置正確時,不輸出任何內容,當文件配置錯誤,輸出錯誤信息。 docker-compose events --json nginx 以json的形式輸出nginx的docker日志 docker-compose pause nginx 暫停nignx容器 docker-compose unpause nginx 恢復ningx容器 docker-compose rm nginx 刪除容器(刪除前必須關閉容器)
6、示例新建docker-compose.yml文件,這里只是簡單舉例。更深入的案例大家可以自己研究一下。version: '1' services: web1: image: nginx ports: - "8081:80" container_name: "test1" networks: - dev web2: image: nginx ports: - "8082:80" container_name: "test2" networks: - dev - pro networks: dev: driver: bridge pro: driver: bridge
yaml語法檢查:https://www./index.html創建webapp目錄,將docker-compose.yaml文件拷貝到webapp目錄下,使用docker-compose啟動應用。http://127.0.0.1:8081http://127.0.0.1:80827、總結docker-compose 適合中小項目的部署,如果要搭建分布式部署環境的話建議使用swam、k8s。如果只是針對單機環境部署用來學習研究的項目還是不錯的選擇。大數據優秀博客推薦 IT技術分享社區 CSDN:https://blog.csdn.net/xishining 個人博客網站:https://
|