在上一篇我們學習了 Docker 的基礎操作,相信大家都可以感覺到 Docker 驚人的方便性吧!
我自己過去,在還沒有使用到Docker的時候,公司要灌新主機的時候,都會花上許多時間,不同的OS版本,以及還有很多相依性的問題,有時候底層的設定沒有設定好,程式就不能順利的啟動,真的會花上不少時間。但有了Docker之後,真的對開發者來說是一個福音,讓開發者可以花更少的時間設定/管理環境,可以把時間花在更有價值的事情上。
好了話不多說接下來要來介紹今天的主題 -- Docker Compose
昨天的文章中,我們成功開啟了一個 Docker container,那大家有沒有想過,如果同時有多個Container要同時開啟的話,要怎麼做呢?我們在架設一個網站服務時,除了要啟動網站本身的程式,另外通常也會需要資料庫(除非你不的服務是不需要儲存查找資料)。那如果有一個服務是可以同時啟動或是設定網站以及資料庫的環境的話那就太棒了。而我們的 Docker Compose便是可以幫助我們處理這件事的好幫手~
Docker Compose 定義多容器應用而開發的應用,透過編寫Docker Compose 的yml檔案,我們可以透過這文件來管理所有我們想要啟動的 Docker 服務。
參考官方網站進行安裝
我們透過編寫docker-compose.yml檔案,同時管理網站以及資料庫的 Docker服務,這邊我們以 django 及 mysql 作為範例。可以參考下面之程式碼
version: '3'
services:
app:
# docker build 的設定
build:
context: .
#port 對應
ports:
- "8888:8888"
#volumes 對應
volumes:
- ./app:/app
#指令
command: >
sh -c "python manage.py runserver 0.0.0.0:8888"
db:
# mysql image 版本
image: mysql:5.7
# 是否自動啟動
restart: always
# 環境變數設定
environment:
MYSQL_DATABASE: 'db'
MYSQL_USER: 'admin'
MYSQL_PASSWORD: 'admin'
MYSQL_ROOT_PASSWORD: 12345678
ports:
- '3306:3306'
完成了 docker-compose.yml檔案,我們在docker-compose.yml的資料夾中輸入 docker-compose start 啟動docker compose服務。
docker-compose start
我們可以看到,系統會建立並啟動我們所指定的服務了~
是不是非常的方便呢!
在這邊我們先為大家說明 Docker , Docker Compose 的基本操作,或許現在可能會覺得太多資訊量有點抓不到感覺,沒關係一開始總是會需要熟悉的時間,之後我們會實際帶大家進行專案的操作,相信那時大家都可以成為達人了~