从零开始学习docker(十一)介绍Docker Compose yml文件介绍
擼了今年阿里、頭條和美團的面試,我有一個重要發現.......>>>
如果我們有一個App,他由多個container組成,那么這個App的維護會非常繁瑣。
包括:
- 要從Dockerfile build image 或者 Docker hub拉取image
- 要創建多個container
- 要管理這些container(啟動,停止,刪除)
docker Compose的作用就是“批處理”。我們只需要一條命令,就可以管理多個容器的創建,停止刪除。
Docker Compose是一個工具
這個工具可以通過一個yml文件定義多容器的docker應用
通過一條命令就可以根據yml文件的定義去創建或者管理這多個容器?
如何寫yml文件 ?
services
一個service代表一個container,這個container可以從docker hub的image來創建,或者從本地的Dockerfile build出來的image來創建。
service的啟動類似docker run,我們可以給其指定network和volume, 所以可以給service指定etwork和volume的引用。
舉例一:
services:db:image: postgres:9.4volumes:- "db-data:/var/lib/postgresql/data"networks:- back-tier這句話類似于
docker run -d --name db? --network back-tier -v db-data:/var/lib/postgresql/data postgres:9.4
舉例二:
services:worker:build: ./workernetworks:back-tier這個是通過本地build的。
networks
volumes
舉例:
version: '3'services:wordpress:image: wordpressports:- 8080:80environment:WORDPRESS_DB_HOST: mysqlWORDPRESS_DB_PASSWORD: rootnetworks:- my-bridgemysql:image: mysqlenvironment:MYSQL_ROOT_PASSWORD: rootMYSQL_DATABASE: wordpressvolumes:- mysql-data:/var/lib/mysqlnetworks:- my-bridgevolumes:mysql-data:networks:my-bridge:driver: bridgeversion: "3" 表示使用的docker Compose 版本是3
這個docker-compose.yml文件包含三部分:services,volumes,networks
services,定義了兩個service分別是wordpress和mysql。wordpress 端口是80映射到8080,environment相當于-e選項,network表示鏈接的網絡是my-bridge,這個網絡在下面會有定義。mysql中的volume映射到mysql-data,這個volume在下面有定義。
?
總結
以上是生活随笔為你收集整理的从零开始学习docker(十一)介绍Docker Compose yml文件介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 从零开始学习docker(十)搭建Wor
- 下一篇: 从零开始学习docker(十二)介绍Do