Docker compose 是用來編排很多docker容器時啟動順序的工具,單個容器可以使用docker run 來啟動,兩三個也可以用docker run 來啟動,但是,實際生產環境中,一個項目需要很多docker容器相互依賴,這時候想要一個一個啟動費事費時。這時候就需要一個工具來解決這個問題。docker compose 的出現,解決了一個項目多容器啟動時的復雜性。
環境:centos7.2
主機:192.168.1.200
一:安裝
1:從github上下載docker-compose二進制文件安裝
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下。
2:pip安裝
1 pip install docker-compose
注:需要安裝python才有pip功能,Linux 自帶python2.7,但沒有pip
二:使用
實驗目的:使用docker-compose 編排工具搭建wordpress容器。
1:創建wordpress工作目錄。
1 mkdir /docker/wordpress/ 2 cd /docker/wordpress/
2:編輯compose.yml(compose配置文件)
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
3:執行wordpress項目
注:執行時必須在compose.yml(compose配置文件)目錄下執行。
1 cd /docker/wordpress/ 2 docker-compose up -d
注:-d 后台運行。
4:查看是否啟動成功,瀏覽器訪問:192.168.1.200