【MLOps - Airflow 疑難雜症】Docker環境下如何操作宿主主機?

更新 發佈閱讀 5 分鐘

關於Airflow是什麼, 歡迎參考「🔒 阿Han的軟體心法實戰營 - MLOps」, 在開始之前我們也推薦以下兩篇給您閱讀:


以上的篇章會與我們今天的主題有關, 基本上我們會儘量以容器化的方式來運行每個自動化流程任務, 這樣有什麼好處? 首先容器的運行比較不會干擾到主機的一些套件、儲存空間…, 除非我們是需要共用及掛載, 但也是有限度的開放, 如果今天沒有容器化, 加上每位用戶都能夠自由的開發DAG流程, 那麼非常容易造成衝突, 這也是為什麼我們都盡量使用容器化的最大原因, 關於容器化也推薦您閱讀「【Docker 容器化】初探微服務時代的虛擬化技術」。


🤷‍♂️ 今天到底怎麼了?

我們都知道容器化能帶來許多好處對吧! 但當我們今天想要對宿主主機進行操作時就會面臨一些困難了, 沒關係, 很開心您閱讀到這個篇章, 我們也非常樂意的幫您整理出幾個問題點。

raw-image


而我們剛好在開發一個自動化的需求就會需要去操作主機的指令與存取目錄, 因此也透過分享經驗的方式讓有需要的朋友可以作為參考。


🤝 我們可以怎麼做?

大致上我們會是這樣的需求, 任務1主要是在進行主機的初始化任務, 讓後續的容器可以避免權限問題, 進而操作主機特定的目錄。

raw-image


如果化身為DAG呢?


raw-image


這邊流程看似簡單, 但我們的init_container究竟要使用哪一個容器呢? 既然是操作目錄, 那麼最直接的就是Bash了, 因此我們會使用到「https://hub.docker.com/_/bash」這個Docker Image來達成功能。


🛠️ 讓我們手把手動手做看看


with DAG(
dag_id='test',
default_args=default_args,
description='初始化host目錄',
catchup=False,
tags=['test'],
params={
'ottdir': Param(
'/workspace/ottdir',
description='ott目錄',
type='string',
),
},
) as dag:

# 執行一個Bash腳本, 主要是初始化掛載目錄, 用mkdir建立目錄, 最後使用chown及chmod設定權限
init_task = DockerOperator(
task_id='init_directories',
image='bash:5.2.37',
container_name='init_directories',
docker_url='TCP://docker-socket-proxy:2375',
network_mode='bridge',
auto_remove=True,
mounts=[
{
'type': 'bind',
'source': '/workspace',
'target': '/workspace',
},
],
command=[
'bash',
'-c',
'mkdir -p {{ params.ottdir }}',
'chmod 775 {{ params.ottdir }}'
],
)

init_task



結語

世界的每件事物都是一個取捨的過程, 就如同我們今天的案例, 想要享受容器化帶來的隔離、獨立, 就得捨棄掉直接存取主機的方便性, 我們每個決策並沒有絕對好的一個方案, 只有當下最符合的選擇才是最好的, 因此不要害怕做決策, 決定之後, 我們總會有其他道路可以通行的, 讓我們一起加油, 互相學習吧!

留言
avatar-img
留言分享你的想法!
avatar-img
阿Han的沙龍
139會員
303內容數
哈囉,我是阿Han,是一位 👩‍💻 軟體研發工程師,喜歡閱讀、學習、撰寫文章及教學,擅長以圖代文,化繁為簡,除了幫助自己釐清思路之外,也希望藉由圖解的方式幫助大家共同學習,甚至手把手帶您設計出高品質的軟體產品。
阿Han的沙龍的其他內容
2025/05/14
當我們在開發AI應用程式的時候, 常常會使用到onnx, ONNX 是一種開放標準格式,允許不同深度學習框架(如 PyTorch、TensorFlow、Scikit-learn)之間互通,使模型可以在不同平台上運行,而 ONNX Runtime 則是一個高效能的推理引擎,專門用來加速 ONNX
Thumbnail
2025/05/14
當我們在開發AI應用程式的時候, 常常會使用到onnx, ONNX 是一種開放標準格式,允許不同深度學習框架(如 PyTorch、TensorFlow、Scikit-learn)之間互通,使模型可以在不同平台上運行,而 ONNX Runtime 則是一個高效能的推理引擎,專門用來加速 ONNX
Thumbnail
2025/04/30
我們在「【語音合成技術 - GPT-SoVITS】如何架設API伺服器」有分享如何使用Docker來架設GPT-SoVITS的TTS API服務, 但過程中我們卻遇到了一些困難, 相信有深入使用這套TTS服務的朋友應該難免也會遇到這類的問題, 期望透過我們的分享幫助到正在遇到困難的你! 首先我
Thumbnail
2025/04/30
我們在「【語音合成技術 - GPT-SoVITS】如何架設API伺服器」有分享如何使用Docker來架設GPT-SoVITS的TTS API服務, 但過程中我們卻遇到了一些困難, 相信有深入使用這套TTS服務的朋友應該難免也會遇到這類的問題, 期望透過我們的分享幫助到正在遇到困難的你! 首先我
Thumbnail
2025/04/23
我們在「【🤖 cursor AI】如何在ubuntu 24.04安裝」有分享如何在Ubuntu安裝cursro這套AI編輯器, 使用起來大幅度的提昇開發效率, 但仍有些問題點需要克服, 比如說: LLM壓根不知道我們的數據庫長怎樣啊? 怎麼分析結構呢? 假設文檔又不足的狀況下更是艱辛, 如果LLM
Thumbnail
2025/04/23
我們在「【🤖 cursor AI】如何在ubuntu 24.04安裝」有分享如何在Ubuntu安裝cursro這套AI編輯器, 使用起來大幅度的提昇開發效率, 但仍有些問題點需要克服, 比如說: LLM壓根不知道我們的數據庫長怎樣啊? 怎麼分析結構呢? 假設文檔又不足的狀況下更是艱辛, 如果LLM
Thumbnail
看更多
你可能也想看
Thumbnail
透過蝦皮分潤計畫,輕鬆賺取零用金!本文分享5-6月實測心得,包含數據流程、實際收入、平臺優點及注意事項,並推薦高分潤商品,教你如何運用空閒時間創造被動收入。
Thumbnail
透過蝦皮分潤計畫,輕鬆賺取零用金!本文分享5-6月實測心得,包含數據流程、實際收入、平臺優點及注意事項,並推薦高分潤商品,教你如何運用空閒時間創造被動收入。
Thumbnail
單身的人有些會養寵物,而我養植物。畢竟寵物離世會傷心,植物沒養好再接再厲就好了~(笑)
Thumbnail
單身的人有些會養寵物,而我養植物。畢竟寵物離世會傷心,植物沒養好再接再厲就好了~(笑)
Thumbnail
不知你有沒有過這種經驗?衛生紙只剩最後一包、洗衣精倒不出來,或電池突然沒電。這次一次補貨,從電池、衛生紙到洗衣精,還順便分享使用心得。更棒的是,搭配蝦皮分潤計畫,愛用品不僅自己用得安心,分享給朋友還能賺回饋。立即使用推薦碼 X5Q344E,輕鬆上手,隨時隨地賺取分潤!
Thumbnail
不知你有沒有過這種經驗?衛生紙只剩最後一包、洗衣精倒不出來,或電池突然沒電。這次一次補貨,從電池、衛生紙到洗衣精,還順便分享使用心得。更棒的是,搭配蝦皮分潤計畫,愛用品不僅自己用得安心,分享給朋友還能賺回饋。立即使用推薦碼 X5Q344E,輕鬆上手,隨時隨地賺取分潤!
Thumbnail
身為一個典型的社畜,上班時間被會議、進度、KPI 塞得滿滿,下班後只想要找一個能夠安靜喘口氣的小角落。對我來說,畫畫就是那個屬於自己的小樹洞。無論是胡亂塗鴉,還是慢慢描繪喜歡的插畫人物,那個專注在筆觸和色彩的過程,就像在幫心靈按摩一樣,讓緊繃的神經慢慢鬆開。
Thumbnail
身為一個典型的社畜,上班時間被會議、進度、KPI 塞得滿滿,下班後只想要找一個能夠安靜喘口氣的小角落。對我來說,畫畫就是那個屬於自己的小樹洞。無論是胡亂塗鴉,還是慢慢描繪喜歡的插畫人物,那個專注在筆觸和色彩的過程,就像在幫心靈按摩一樣,讓緊繃的神經慢慢鬆開。
Thumbnail
在Spring Cloud微服務中,透過Maven與Docker,將專案打包成Docker Image,並部署。 安裝Maven apt install maven​ 安裝Docker apt install docker.io 啟動Docker service docker s
Thumbnail
在Spring Cloud微服務中,透過Maven與Docker,將專案打包成Docker Image,並部署。 安裝Maven apt install maven​ 安裝Docker apt install docker.io 啟動Docker service docker s
Thumbnail
Docker-Compose負責對container做快速編排。設定檔預設名稱為docker-compose.yml,在檔案中,可以透過COMPOSE_FILE或-f對設定進行定義。 想要將專案透過Docker-Compose部署,需要創建docker-compose.yml和Dockerfile
Thumbnail
Docker-Compose負責對container做快速編排。設定檔預設名稱為docker-compose.yml,在檔案中,可以透過COMPOSE_FILE或-f對設定進行定義。 想要將專案透過Docker-Compose部署,需要創建docker-compose.yml和Dockerfile
Thumbnail
MacOS 請先安裝「Homebrew」。開啟「終端機」,輸入底下指令: brew cask install​ docker 載入Docker App後,點擊Next,輸入MacOS登入密碼。安裝完成後,輸入底下指令查看版本資訊: ​docker -v Linux 開啟「終端機
Thumbnail
MacOS 請先安裝「Homebrew」。開啟「終端機」,輸入底下指令: brew cask install​ docker 載入Docker App後,點擊Next,輸入MacOS登入密碼。安裝完成後,輸入底下指令查看版本資訊: ​docker -v Linux 開啟「終端機
Thumbnail
Docker是由GO語言實現,是一個在GitHub上開發原始碼的專案。它的目標是實現羽量級的作業系統虛擬化。讓使用者操作Docker,就像是操作一個羽量級的虛擬機器。 優勢 快速發表和部署 高效的部署和擴充 資源使用率高 管理簡單 核心 Image映像檔 Docker
Thumbnail
Docker是由GO語言實現,是一個在GitHub上開發原始碼的專案。它的目標是實現羽量級的作業系統虛擬化。讓使用者操作Docker,就像是操作一個羽量級的虛擬機器。 優勢 快速發表和部署 高效的部署和擴充 資源使用率高 管理簡單 核心 Image映像檔 Docker
Thumbnail
前言 大家好上次我們教了如何下載 Docker Image 使用,今天我們要教如何產出自己的 Image,這次會使用一個 Dockerfile 範例,自行打包 Docker Image,初步練習使用 Docker 指令 下載 Dockerfile 教學檔案 在這裡我已經幫忙寫好一個 Docke
Thumbnail
前言 大家好上次我們教了如何下載 Docker Image 使用,今天我們要教如何產出自己的 Image,這次會使用一個 Dockerfile 範例,自行打包 Docker Image,初步練習使用 Docker 指令 下載 Dockerfile 教學檔案 在這裡我已經幫忙寫好一個 Docke
Thumbnail
前言 上次講到 Dockerfile、DockerImage、Docker Container 他們之間的關係,今天我們要來熟悉 Docker Image 如何使用,教你如何抓取雲端上的 Docker Image, Docker Image 下載來源 當我們今天要要使用 Docker Imag
Thumbnail
前言 上次講到 Dockerfile、DockerImage、Docker Container 他們之間的關係,今天我們要來熟悉 Docker Image 如何使用,教你如何抓取雲端上的 Docker Image, Docker Image 下載來源 當我們今天要要使用 Docker Imag
Thumbnail
前言 上次我們初步體驗 Docker 快速佈署能力,今天我們要來講解 Dockerfile、Docker Image 與 Docker Container 這些常見的名詞,我們來了解在我們佈署的時候做哪些事情 Docker 佈署流程 首先看到如下圖上半部,在我們一個完整的佈署流程,我們會先將我
Thumbnail
前言 上次我們初步體驗 Docker 快速佈署能力,今天我們要來講解 Dockerfile、Docker Image 與 Docker Container 這些常見的名詞,我們來了解在我們佈署的時候做哪些事情 Docker 佈署流程 首先看到如下圖上半部,在我們一個完整的佈署流程,我們會先將我
Thumbnail
前言 大家好在先前我們講了什麼是 Docker,Docker 好處有什麼以及怎麼安裝 Docker,今天我們要來開始初體驗 Docker 容器,使用後您會發現 Docker 非常的方便快速 Docker Hub 介紹 首先在開始學怎麼抓取 Docker Image 之前,我們要先來介紹 Doc
Thumbnail
前言 大家好在先前我們講了什麼是 Docker,Docker 好處有什麼以及怎麼安裝 Docker,今天我們要來開始初體驗 Docker 容器,使用後您會發現 Docker 非常的方便快速 Docker Hub 介紹 首先在開始學怎麼抓取 Docker Image 之前,我們要先來介紹 Doc
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News