Docker compose 是用來編排不少docker容器時啓動順序的工具,單個容器能夠使用docker run 來啓動,兩三個也能夠用docker run 來啓動,可是,實際生產環境中,一個項目須要不少docker容器相互依賴,這時候想要一個一個啓動費事費時。這時候就須要一個工具來解決這個問題。docker compose 的出現,解決了一個項目多容器啓動時的複雜性。python
環境:centos7.2mysql
主機:192.168.1.200git
1 curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/bin/docker-compose 2 chmod +x /usr/bin/docker-compose
注:若是下載的路徑沒有在/usr/bin下面,請作軟鏈接到/usr/bin下。github
1 pip install docker-compose
注:須要安裝python纔有pip功能,Linux 自帶python2.7,但沒有pipsql
1 mkdir /docker/wordpress/ 2 cd /docker/wordpress/
1 vim docker-compose.yml
wordpress: image: wordpress links: - db:mysql ports: - 80:80 db: image: mariadb volumes: - /docker-compose/mysql/:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: 123456
1 wordpress: 容器模塊 2 image: 鏡像模塊 3 wordpress 鏡像名稱,這裏是從docker hub下載wordpress鏡像。 4 links: link模塊,用來連接2個容器之間的通訊,容器內直接通訊。官方不推薦使用這種方式來進行容器內的通訊,後續版本會移除。官方文檔:https://docs.docker.com/network/links/ 5 - db:mysql db是wordpress容器在link下mysql的別名。 6 ports: ports模塊,用於端口映射。 7 - 80:80 將wordpress容器內的80端口映射到宿主機的真實80端口上,就能夠經過訪問真實主機(宿主機)的端口訪問到容器內的80端口。 8 db: 容器模塊 9 image: 鏡像模塊 10 mariadb 從docker hub 下載mariadb鏡像。 11 volumes: 文件系統模塊,因爲設計到docker工做原理,請自行移步至官方文檔理解:https://docs.docker.com/storage/volumes/ 12 - /docker-compose/mysql/:/var/lib/mysql 將宿主機的/docker-compose/mysql/目錄映射到容器內/var/lib/mysql目錄。兩個目錄中的文件實時同步。下篇文檔詳細講解。
13 environment: 參數模塊
14 MYSQL_ROOT_PASSWORD: 123456 指定mariadb容器的初始密碼爲123456
注:執行時必須在compose.yml(compose配置文件)目錄下執行。docker
1 cd /docker/wordpress/ 2 docker-compose up -d
注:-d 後臺運行。vim