iT邦幫忙

0

docker 可以怎麼用?

  • 分享至 

  • xImage

大家好,

自從聽到 docker 這個技術,就在思考對於我們的工作有沒有幫助。但看了一些文章,似乎很少關於實務面的討論(可能我看得太少)。

目前公司有個案子,要將系統部署到100台桌機(姑且稱為POS機)。於是重新思考 docker 是否有幫助?先說說我粗淺的認知,請大家指正:
1.首先,每台POS機 要安裝 docker
2.將系統打包成 docker image,部署到POS機,啟動 docker ,就可以使用系統了。
3.如果有新版程式,再包一次 docker image ,整包更新到POS,就完成了。

我想得會不會太簡單了?

以上是技術面的問題。架構面我有很大的疑問:
1.每個POS機都會有自已的config,比如說 web.config、或是連接的印表機的名稱,是不能被 docker image 蓋掉的,這部份要怎麼處理?
2.db 的部份,大家會包在 docker裡面嗎? 不會的話,怎麼部署? 會的話,如何解決資料不會被蓋掉的問題?

不知道我的思考方向對不對?如果我完全搞錯docker的用途,或是用詞不精確,也請不吝指正,謝謝大家。

看更多先前的討論...收起先前的討論...
舜~ iT邦高手 1 級 ‧ 2020-05-02 12:05:28 檢舉
直覺 db應該不用...都從伺服器抓資料就可以了
ckp6250 iT邦好手 1 級 ‧ 2020-05-02 16:14:53 檢舉
  我不知道我有沒有理解錯問題,我覺得這二個問題跟 docker 沒有關係!

  config 和 db 應該都是【最基本最共通】的東西,就算包在 docker 裡也沒有關係,每個POS機應該都有管理介面去變更這些設定,包括【web.config、或是連接的印表機的名稱】,db裡的主機ip ,或使用者帳號等也應有管理介面去異動,應該不會有人把這些東西寫死在程式裡吧?
Brandon iT邦新手 4 級 ‧ 2020-05-02 21:42:27 檢舉
那請教:如果把config包在 docker 裡面,做成 docker image 發佈出去,然後個別POS 用管理介面改 web.config ,改之後的 web.config 是存在那裡?還是說這是管理介面要去處理的事?
ckp6250 iT邦好手 1 級 ‧ 2020-05-04 17:19:22 檢舉
  假如是我的做法的話,原始的 web.config 我會把它另存新檔去運作,存在 docker 內或 docker 外就隨便您了,這是管理介面要做的事。
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0
echochio
iT邦高手 1 級 ‧ 2020-05-02 11:38:07

docker 的運用在於將程式碼與環境變數包起來
docker 是可以引用外部參數的 ...
例如說我要啟動一個 nginx 那每個人的網頁目錄不同, 名稱不同要如何處理 ?
正常是會這樣處理的

docker run --name mynginx --mount type=bind,source=/var/www,target=/usr/share/nginx/html,readonly --mount source=/var/nginx/conf,target=/etc/nginx/conf,readonly -p 80:80 -d nginx

你的需求是 POS機 ...應該不會有 DB
正常 DB 會這樣處理

docker run --name mssql-server-linux \
-e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=Pa$$w0rd' \
-p 1433:1433 \
-v /home/{user}/db:/var/opt/mssql/advantruework \
-d \
microsoft/mssql-server-linux
0
Richie
iT邦好手 10 級 ‧ 2020-05-03 00:41:03

使用 docker-compose,把 web.config 使用 volume mount 的方式,就可以達到每一台的 web.config 獨立了

Brandon iT邦新手 4 級 ‧ 2020-05-04 21:40:12 檢舉

謝謝,看來我還有很多需要學習的地方

我要發表回答

立即登入回答