搜尋

搜尋結果

Docker 中的非管理員用户 Docker non-root user
科技新知
MacauYeah・2025-03-14

Container USER為何重要 在制作Docker Image的過程中,有時會接觸到 USER 這個設定。這事關到最後的 Docker Container內部運行的那個 user 到底會有什麼權限。大家也要知道,Docker Container 其實也只是一個 Linux 上的程序,也就是如果Container內權限過大,也有機會從 Container 內部存取到 Host上的資料。 一般情況下,Docker Image 預設的 USER 就是 root,最基礎的base image都是一樣。而我們想換,其實也相當簡單,就像Linux上起User一樣,只要經指令RUN adduser xxx 或RUN useradd xxx 也可以在 Docker Image 中創建帳號和 home 資料夾,之後就隨時經USER xxx來切換 實際上是不是這麼簡單? 如果你將要Container中執行的程序,是一個binary,平常你在Linux中也是以 non-root 方式執行,那麼是的,就是那麼簡單。例如你執行系統中的java, node, python,原本在Linux中就已經是誰都可以,那麼你的docker container 也應該沒有難度。 但如果原本的安裝包,預設是由system service來啟動,我們就要花點力氣,看看那個service是怎樣呼叫binary的,然後就一步一步模擬它的做法。例如筆者有打包的codeserver,預設是system service啟動,但它也有提共binary的執行方法,安定好home資料夾後,我們也可以手動啟動。 泛生之檔案權限問題 上述binary的情境之所以簡單,是因為大部份情況下,我們都只對於container 內部運行考慮即可,因為預設投產情況下的運作模式,都是隨時起、隨時刪、隨時砍掉重練,只要container內部運作可以自給自足,就可以了。Docker Swarm的運作也是如此,所以它不預期有的持久化資料權限的問題。 而持久化資料權限的問題,其實早在單個Linux伺服器就已經存在。同一個伺服器中,不同process就有不同的UID,當他們需要共同讀/寫某些檔案,就會設定多人權限。同理,當多個Container要共同檔案,也是同樣問題。在討論共享檔案之前,我們先看看預設 Docker Storage Mount 會給我們什麼權限。 如果是bind mount,bind mount的權限預設會是Host內的檔案或者資料夾的權限。 如果Host是root,container內是non-root,container有機會無法讀寫bind mount內的檔案。 留意權限設置就可以解決問題 如果Host是non-root,但container 內是root,從container內生成的檔案,Host的non-root user就無法使用。 Host是non-root的話就一定無解,Host至少有sudo權限,臨時變成管理員,去修正問題。 如果host和container也是non-root,但UID不夾,其實也不能交換使用。 跟上述一樣,最後要靠sudo來解決問題。 如果host和container也是root,就沒有權限問題,但就有安全性的風險。 如果是volume mount,就還是看看 mount path 是docker image layer中現有的 path還是新起的path 大部份手動建立的named volume都是root 經docker compose起的named volume滿足以下條件的話,將會是non-root。 docker image 中的已有該path存在。 named volume未存在,docker compose會把對應path的內容在初次建立時抄到named volume 中。 例如ubuntu:24.04中的/home/ubuntu,存在於docker image中,它的擁有者就是UID 1000,我們經docker compose HOME_VOLUME:/home/ubuntu,在HOME_VOLUME建立時,就會是UID 1000。但如果是 NOT_EXISTS:/home/ubuntu/somethingNotExists,那麼NOT_EXISTS建立時,也會是root 上述討論的Storage mount是集中在單機情況下,使用HOST OS的本地儲存。若現在的場境是多機共享的share storage,就會更麻煩,還要看看那個share storage本身的屬性。例如常見的Linux NFS,其實有指定的權限,跟NFS的Login權限有關,如果你的process本身對檔案權限很敏感,就請先不要挑戰NFS(例如postgresql)。 Rootless mode - Rootless 模式 Rootless 模式指的是在Host中,執行Container的使用者,不需要是管理員,筆者就常用於開發環境中。投產環境中反而沒有聽過這樣的討論,因為投產環境很少可以讓非管理員去執行這麼重要的環境管理。 雖然只是開發環境,但這像前述的bind mount討論中,如果Host是non-root,但container 內是root,又或是兩者non-root,但UID不夾,也會出現權限問題。無腦的將host user加入docker group,只可以讓非管理員可以運行docker,但解決不了權限問題。 真正有條件解決的,可能就會向linux subgroup的方式發展。暫時筆者用得比較順的rootless mode,可以無腦用的,不是docker,是podman。有興趣的朋友可以經podman官網看看教學,它給筆者的感覺就像是自動轉換UID。 podman rootless mode 想看更多 筆者已經將過去的文章重新整理成gitbook,有興趣睇更多的讀者,可以來筆者的gitbook再翻一翻 https://macauyeah.github.io/AProgrammerPrepares/

超高CP值“德州美式煙燻烤肉”!親友聚會必食!
生活在我城
Cheers!・2024-10-30

小編作為識食之人,新濠天地頤居三樓嘅「御膳扒房」絕對係必打卡之地!自今年3月開幕以來,呢度成為咗家庭聚餐、朋友聚會、浪漫約會嘅理想之地,餐廳專注於烹調美式牛扒,將炭火扒房魅力提升至新境界。廚師利用來自美國喬治亞州嘅紅橡木煙燻,將每一塊扒都保留最純正嘅風味。而且,餐廳仲可以睇到路氹金光大道嘅靚夜景,絕對令你嘅用餐體驗更加完美! 餐廳資訊: 地址:澳門新濠天地頤居三樓 營業時間:星期二至星期日,晚上6時至10時30分(最後點餐時間晚上10時) 著裝要求:時尚休閒;男士禁穿涼鞋或無袖上衣 孩童政策:歡迎任何年齡賓客入座 查詢或訂座: (853) 8868 6681或tastingroom@cod-macau.com 官網詳情:https://s.ctm.net/htUY1 御膳扒房——您的gathering好去處 御膳扒房特別挑選28天熟成美國和牛、頂級黑安格斯谷飼牛和美洲野牛,肉質軟嫩多汁,炭烤風味一絕!餐廳嘅Josper木炭烤箱無需插電或瓦斯,能達300-350度的高溫,快速鎖住食材嘅原汁原味,散發出誘人炭火香氣,令人垂涎欲滴! 不論係私人聚會定係家庭聚餐,貴賓廂房可容納14位賓客,等你係典雅嘅環境中盡情享受美食。 最近御膳扒房推出好多CP值超高嘅抵食菜色,等小編帶你睇睇餐廳兩款特推菜單! 德州美式煙燻烤肉——風味醬汁,味道極佳 「御膳扒房」主廚特調嘅德州風味醬汁,淋喺肉表面,再燻製出獨特香氣,味道絕佳!選用櫻桃木、山胡桃木及蘋果木炭火燒製嘅大理石花紋美國SRF極黑和牛腩、肥嫩牛仔骨,以及多汁豬腩扒,最佳火候激發煙燻飄香,皮脆肉汁四溢,帶來獨特嘅味蕾享受。 櫻桃木煙燻美國和牛牛胸 配洋蔥沙律及牛汁,奢華大理石花紋和牛胸肉在櫻桃木上燻製,風味獨特。 300g / $568MOP 山胡桃木煙燻牛小排 肥美嫩滑嘅牛小排,使用山胡桃木片燻製,增強濃郁煙燻味。 300g / $498MOP 600g / $888MOP 蘋果木煙燻五花肉 多汁嘅五花肉,用蘋果木燻製,配以香甜青蘋果醬,味道和諧平衡。 200g / $388MOP 配菜 忌廉甜粟米 $98MOP 碳烤雙孢菇 $128MOP 炭燒牛排番茄 $128MOP 限定推廣期:即日起至 11月30日 CP值超高!六道菜精選晚餐$2888+ 御膳扒房推出咗適合3至4人分享的6道菜晚膳套餐,套餐包含餐廳大部分嘅招牌菜式,包括1,200克嘅厚切T骨牛扒、極級牛肉他他、香煎帶子、龍蝦或牛肝濃湯、番茄沙律及其他美味甜點。對於有選擇困難症嘅你黎講,絕對係最佳選擇! 對於唔鐘意牛肉的賓客,單點菜單上仲有羊架、燒雞、波士頓龍蝦、海鱸魚等選擇。 呢個套餐真係物超所值!份量非常適合家庭及朋友聚會,同時包含餐廳大部分的招牌菜,快啲約埋你嘅朋友一齊來享受美食啦! 御膳扒房: 地址:澳門新濠天地頤居三樓 查詢或訂座:(853) 8868 6681或tastingroom@cod-macau.com 官網詳情:https://s.ctm.net/htUY1

良心遊戲推薦:《歧路旅人:大陸的霸者》
手機‧電玩
MacauYeah・2023-02-14

對於RPG劇情遊戲,筆者一直只會關注主機或PC平台,手機上的作品,真的不敢期待太多:新作品課金意圖太強、看下去不天天充錢就玩不下去;移植作品就是操作不良,沒有考慮手機的使用環境,還會遇到手機升級就不能玩的狀況。 不過最近,筆者終於真真正正玩了一款適合手機上的新作品: 《歧路旅人:大陸的霸者》。筆者前陣才剛通關了Switch版上的《歧路旅人》(八方旅人),然後它的手機版《歧路旅人:大陸的霸者》就剛好中文化,在港澳台上市了。筆者下載後,也就斷斷續續的玩,截至現在,遊玩總時數25,但這25小時體驗不比Switch 版差,什至劇情方面還比Switch 版好。筆者盡量以不劇透的方式,去表達手機版與Switch版的差異。 先講戰鬥系統,歧路旅人系列,都有不同武器和魔法屬性,只有累積打中弱點武器或魔法數次,才能破防,玩家正常情況下,亦可以在每回合中取得BP點數,然後再一口次大量輸出。手機版與Switch版最大的差異,Switch版可以通過改變角色的副職業來達到轉換武器、魔法,而手機版角色只有單一固定武器、魔法學習路線。Switch版,一次出戰只有4人,但因為副職業選擇多,容易配出全屬性泛用戰鬥隊伍。手機出戰角色為8人,分前後排出戰,後排正常情況下不會受傷,可以自動回復HP、SP、BP,但因為要經過抽卡取得角色,所以正常情況下都不會有全屬性隊伍。 手機版中,雖然抽卡很可恨,但筆者在不課金情況下,也順利通關主線基本內容,證明關卡設計還是合理。(筆者沒有課金,只需要使用遊戲內的獎勵系統去重複抽角色,大概抽夠50抽,就夠編一隊半泛用隊) 劇情系統:Switch 版中八個主線明線故事,每個四章節。手機版中三個主線明線故事,每個三章節,也有抽卡角色故事,也是每個三章節。不同主線之間可以自由切換,沒有指定順序。Switch 版故事比較多,也只有八個主線全數完成,才能有挑戰隱藏Boss,解釋全世界的來龍去脈(筆者沒有成功挑戰隱藏Boss,只能以訛傳訛)。手機版也有類似設計,在挑戰完三主線後,有些關聯發展,照推測應該也是有一個隱藏暗線(筆者實力有限,只能腦補推測)。 正如筆者於本文一開始所說,手機遊戲,大多沒有直正地考量手機的使用環境,而《歧路旅人:大陸的霸者》就好好地實現了這一點,這亦是筆者大力推薦這遊戲的第一個大原因。手機遊戲,主要在碎片化時間下遊玩,傳統的RPG劇情遊戲想搬到手機上,沒有自動Save的幫忙,根本玩不下去。而且這遊戲還是很忠實地呈現了跑圖機制,在跑圖的過程中,也有自動Save的幫忙,很適合筆者這種開遊戲2分鐘不夠又要走的人。而且戰鬥系統採用回合制,有足夠時間可以讓筆者重組策略,同時也保留了足夠的關卡難度,讓筆者感受到緊張刺激的決策效果。同時,跑圖、戰鬥選擇等操作,也有考慮好手機的方式,通關滑動去做自動化和強化。 第二個推薦這遊戲的大原因,就是遊戲中【名聲】主線的劇情,這主線絕不是普普通通的王道或復仇路線,”劇情反轉”已不能用來形容筆者所感到的震撼。大家即便不玩,也可以去各大影視平台看看錄播劇情。其他主線就顯得不太突出,但看看也無妨,因為以近年Square Enix的實力,能好好地講完一個故事,已經很不錯。這遊戲的大局觀沒有開得很大,不會像FF系列那種強行推劇情,不用怕看到一半悶到死、看完會後悔的感覺。 總括來說,如果你想在手機平台玩玩輕鬆的單人遊戲,《歧路旅人:大陸的霸者》是必玩的選擇。主線不用刷等級也能過關,遊戲操作也很切合手機平台,即使在碎片化時間下還能遊玩。 手機遊戲中文版 官方網頁 https://www.boltrend.com/zh-tw/ot

你每天睡眠好嗎?假日補眠有幫助嗎?
其他
皓芯・2022-04-18

在人的一生中,幾乎花了三分之一的時間在睡眠上,雖然我們每天都會睡眠,但在我們睡著的時候,大腦依然忙碌著。睡眠時,是大腦執行記憶確認功能、是幫我們「清洗」清除大腦代謝物的時機。 睡不夠是現代人普遍的現象,很多人熬夜或睡眠不足,總想著利用「假日補眠」。然而,研究分析顯示,睡眠問題不僅會影響人的情緒、注意力不集中、甚至能影響人的免疫系統。 每年,世界睡眠學會(World Sleep Society)針對大眾的睡眠健康需求,為“世界睡眠日”(WSD, World SleepDay®)制定年度主題。希望透過各樣活動,提高人們對於健康睡眠的認識和關註,呼籲大家一起來正視睡眠健康的重要性,保持規律又優質的睡眠,可以改善身心健康。然而,人為什麼要睡覺呢? 本書作者馬修.·沃克(Matthew Walker),神經科學家暨心理學教授,也是「人類睡眠科學中心」的創立者,主要研究在於探討睡眠,對人類健康和疾病的影響。他致力於傳播科學,向大眾宣揚睡眠的驚人力量,經常接受各大媒體訪談,包括國家地理頻道、BBC等。此外他曾擔任美國國家籃球協會(NBA)、英格蘭足球超級聯賽的睡眠顧問等,目前身兼Google生命科學部門的睡眠科學家。 這是一本介紹睡眠的科學書籍,本書介紹了許多經過科學驗證的睡眠知識,從科學的角度告訴我們睡覺的重要性;本書可說是他彙整數十年來的睡眠研究成果,書中節錄許多關於睡眠的臨床實驗,解釋大腦的睡眠功能,告訴我們睡覺對身體和心靈的好處,與缺乏睡眠和熬夜對身體的影響;最後還提供了增進睡眠品質、如何睡好覺的方法,帶領讀者認識睡眠的重要! 本書更入選微軟創辦人—比爾蓋茲的2019年年度選書之一,他說這是本「重要而且引人入勝的好書」。 還記得最近一次不用鬧鐘就醒來,是什麼時候嗎?你有想過人為什麼要睡覺?你每天的睡眠時間達標了嗎?為什麼人上了年紀睡眠時間會變短呢?以上問題皆可在本書中找到答案。 本書作者馬特.沃克在TED的精彩演講影片   《為什麼要睡覺?:睡出健康與學習力、夢出創意的新科學》 作者:馬修.沃克 原文作者: Matthew Walker 譯者: 姚若潔 出版社:天下文化 出版日期:2019/01/30 ISBN:9789864796311 訂購地點: 一書齋 圖片來源: 網絡圖片、 自由健康網、HEHO 健康網