iT邦幫忙

2

DOCKER問題請教

  • 分享至 

  • xImage

您好:
請問一下有關DOCKER 問題

1.DOCKER 說用來開發測試較方便,那是否有將docker 當作production來上線的
2.相對於Esxi,Hyper-V(不知道有沒有),有自動遷移,達到always on,docker 有辦法做到嗎?
3.若在DEV端 的docker ,與production 端的docker,一開始架構間一樣,
後來DEV端陸續開發或更新,是要用volumn 的方式更新開發端程式嗎?

4.同3.問題
若production 端 有
mysql
python

dev 個人有
mysql-1
python-1
mysql-2
python-2
那,若單純更新 mysql-1,python-1 資料上去production,也是利用Volumn的方式處理嗎?

想請問前輩們,一般如何使用這 docker 來開發及佈署
謝謝

看更多先前的討論...收起先前的討論...
望空 iT邦研究生 4 級 ‧ 2025-11-30 19:51:41 檢舉
建議可以看k8s或openshift相關書籍
mathewkl iT邦高手 1 級 ‧ 2025-12-01 13:09:10 檢舉
docker就只是個docker,其他高可用架構要另外去堆
Jasper iT邦新手 5 級 ‧ 2025-12-02 08:48:11 檢舉
1. 有
2. 是指 container 掛掉會重啟嗎?,docker 有相關參數設定可以設定,ref:https://docs.docker.com/engine/containers/start-containers-automatically/
3. 可以用掛載,但你的 application 要能支援 hot reload
4. 通常 production 都會是重 build image,另外 mysql 則會是掛載資料出來到 host,不然你沒辦法做備份
noway iT邦研究生 1 級 ‧ 2025-12-04 09:21:05 檢舉
那有將docker 取代 Esxi 或 Hyper-V 嗎?(先不論 自動遷移)
只是想了解,目前docker 可以用於什麼程度

謝謝
Pod042A iT邦新手 5 級 ‧ 2025-12-04 15:29:56 檢舉
容器化技術虛擬化的是「作業系統」。容器與主機共用作業系統的 Kernel,因此容器內只會包含應用程式所需的函式庫和檔案。

而虛擬機器則是虛擬化「硬體」,每個虛擬機器都包含完整的作業系統 Kernel。

因此,虛擬機器可以執行與主機不同的作業系統,而容器化技術理論上不能(至於在 Windows 系統上可以執行 Linux 的容器,是因為 Windows 系統內有 WSL,提供 Linux 系統所需的 Kernel)。

容器化技術的目的是為單一應用程式/服務提供一個獨立、方便轉移的環境,而不是作為完整的作業系統使用。
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
bluegrass
iT邦大師 1 級 ‧ 2025-12-03 08:58:40
最佳解答

如果我是你, 我會先把DOCKER主機裝到VM內, 再在VM內跑DOCKER.

看更多先前的回應...收起先前的回應...
noway iT邦研究生 1 級 ‧ 2025-12-04 09:18:13 檢舉

您好:
我有再PC端先測試 (i5 CPU ):2年內機器
要在VM workstation 安裝 docker
但說無法使用
勾選 virtualize VT-x/EPT or AMD-V/RVI
說不支援
所以只好 將DOCKER直接仙裝於PC

bluegrass iT邦大師 1 級 ‧ 2025-12-04 12:59:44 檢舉

你要想方法啟用nested virtualization

才可以在VM中跑VM

DennisLu iT邦好手 1 級 ‧ 2025-12-10 14:19:53 檢舉

你可能被windows的設置炸到,所以無法順利用別家的吧
我的解法。
https://hackmd.io/@dennisxkimo/H16LXSrr0

noway iT邦研究生 1 級 ‧ 2025-12-19 20:14:33 檢舉

您好:
感謝您的方法
檢查到最後
電腦設定>系統管理範本>系統>Device Guard
開啟虛擬化行安全性 設為 "停用"

然後,開啟 勾選 virtualize VT-x/EPT or AMD-V/RVI
就可已了

4
Pod042A
iT邦新手 5 級 ‧ 2025-11-30 15:27:29
  1. 生產環境的多容器系統通常會使用 Kubernetes(k8s) 來管理多個容器。可以將開發環境中使用的映像(Image)放到 k8s 系統上建立容器。
  2. 使用 k8s 系統的 Deployment:https://ithelp.ithome.com.tw/articles/10194152
  3. 架構理論上是一樣的。因為需要使用的檔案(程式碼、執行腳本)、映像的設定(Dockerfile的內容)在建立映像後就已經固定,那麼架構(連接方法、運作方式)就是相同。除非有設計針對生產環境改變執行方式。
  4. 一般使用的情況下,更新檔案後需要再建立一次映像,讓更新的檔案儲存到映像中。如果預計會頻繁修改檔案,可以使用掛載(mount)的方法將容器內的檔案放在執行 k8s 系統的本機儲存空間上,直接進行修改。
0
DennisLu
iT邦好手 1 級 ‧ 2025-12-02 16:08:19

非資料庫的app部分來看,
開發過程用volume還可以,方便馬上測試見效,
但release production的時候最好另外有設計 dockfile 封裝為獨立production image,
每次release的時候當然要tag版號,
之後你更新運行版本或上k8s大量deploy只要改改版號,才不會出問題又要重新想辦法解決,
要做全自動或半自動遷移都很輕鬆。

更版流程設計千萬是不要停止container>更換volume掛的內容>再啟動container來完成更版。

我要發表回答

立即登入回答