iT邦幫忙

0

Docker 建置相同環境

最近在學習Docker,網路上看到很多人說Docker可以讓工作的團隊都用相同的環境開發,很好奇這到底是甚麼意思?(況且網路上許多的範例大多是應用程式的demo與講解

舉例來說,目前大家都是用visual studio進行開發,可是build的只是"應用程式"的image而已,要怎麼讓他跟我有同樣的環境與visual studio的開發環境?
甚至透過dockerfile進行共同維護?

因為同事docker pull 下來的是只是一個image,然後run,要怎麼跟環境有關係?
研究了快兩個月,一直無解,,,請各位大神解惑

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
4
Darwin Watterson
iT邦好手 1 級 ‧ 2021-11-26 16:45:23

以我這篇為例:古典 java tomcat server 專案 dockerize 踩坑全記錄
『工作的團隊都用相同的環境開發』在這篇中是指:
不管你丟的 war 檔是什麼,
實際 docker 運作的
tomcat serevr 都是 9.0
JDK 都是 openjdk 8

以上是 Java web 的情境。

其他還有 visual stdio、php、nginx、mysql、mongo、...的情境。
基本上是可以固定套件版本、Linux運作環境相同。

docker container 基本上可以看成是一個獨立的 Linux 環境。

2
黃彥儒
iT邦高手 1 級 ‧ 2021-11-26 16:46:25

因為環境有分「開發環境」和「執行環境」呀

Docker大多處理的是執行環境,我只要確保我的程式在A Image裡面可以跑,那程式給B後 Docker會負責弄出一樣的A Image,所以這樣就很方便啦

以前裝一個程式在新的機器上,可能要一起裝很多東西(像是C++ Runtuime或是LAMP),現在只要一行指令就可以確保大家的執行環境都一樣了,減少「這程式在你那裡很正常,但我就跑不起來」之類的問題。

1

把Docker想像成一種虛擬機或是沙盒的概念。
但沒有作業系統的包袱。

只有單純的WEB SERVER跟資料庫或是JAVA等等必要應用元件。
基本建置的包。只要能在Docker應用跑起來。

那無論在哪一個Docker應用上都能跑。且其內對應的應用也無需因為你的環境不同而做調整。
這就是Docker的好處。

我要發表回答

立即登入回答