現在對docker的使用和理解有點混亂,想請教大家。
例如:
我現在有一個記憶體8G的linux的系統。
我需要在這個系統上運行兩個環境:alpha 和beta環境。
alpha和beta環境都用自己的nginx和mysql。
我目前的理解是有兩種方案:
方案1:
创建两个 container:container_alpha,container_beta。 在两个container_alpha和container_beta和里面都安装好mysql和nginx
方案2:
创建四个 container,在四个container里面都**只**安装 alpha_mysql alpha_nginx beta_mysql beta_nginx
對於方案一來說,配置和使用以及管理會方便清晰很多。
對方案二來說,每一個container都只對應了一個服務,不知道這是否比較符合docker的原則。
或說我對docker的理解還不對,那麼請問docker的正確的使用姿勢是怎麼樣的呢?
這取決於你把哪些當作一個服務,或"管理的單位"。
如果db+nginx+php總是一對一且彼此綁定,我覺得把這些當成一個服務也無不可。
如果資料庫會有主從,讀寫分離之類東西,把一個mysql算一個服務會比較方便。
另外方案2對擴充更友好,要改的時候不用拆image,只要改docker-compose 或其他配置即可。