[爆卦]Dockerfile WORKDIR是什麼?優點缺點精華區懶人包

雖然這篇Dockerfile WORKDIR鄉民發文沒有被收入到精華區:在Dockerfile WORKDIR這個話題中,我們另外找到其它相關的精選爆讚文章

在 dockerfile產品中有8篇Facebook貼文,粉絲數超過2,850的網紅矽谷牛的耕田筆記,也在其Facebook貼文中提到, ref: https://sysdig.com/blog/dockerfile-best-practices/ 如果你常用到容器化、微服務架構,這些輕量化的架構當碰到問題時,背後的資安事件調查、報告、修復卻是影響甚鉅。然而,這些影響都可以透過「把安全意識擺在開發階段 (shifting left ...

 同時也有2部Youtube影片,追蹤數超過12萬的網紅prasertcbs,也在其Youtube影片中提到,? เทคนิคต่าง ๆ ที่ใช้ในคลิป 02:22 เข้าใจ instructions และ arguments ที่สำคัญที่อยู่ใน Dockerfile 08:44 การใช้ docker build 20:20 การ push image ที่สร้...

  • dockerfile 在 矽谷牛的耕田筆記 Facebook 的最佳貼文

    2021-07-05 08:23:21
    有 102 人按讚

    ref: https://sysdig.com/blog/dockerfile-best-practices/

    如果你常用到容器化、微服務架構,這些輕量化的架構當碰到問題時,背後的資安事件調查、報告、修復卻是影響甚鉅。然而,這些影響都可以透過「把安全意識擺在開發階段 (shifting left security)」來降低風險,而這篇文章就會講述 Dockerfile 的最佳實作手段有哪一些。

    首先,我們會從幾個大面向來說明各種控制安全風險的細節,像是權限控管、降低攻擊層面、預防機敏資料洩漏,以及在發布 container image 時的注意事項。而你需要特別注意的是,其實 Dockerfile 也只是算是開發階段的一部份,所以這邊能提醒到的內容都屬於部署前(特別是開發階段)的準備。以下共提及 20 個你可以注意的重點,但因為篇幅較長,筆者將選出較重要的幾個來談談。

    讓我們從「權限控管」說起:

    Rootless container
    根據報告結果顯示,有超過 58% 的 image 都是用 root 作為執行服務的使用者,所以在此也會建議透過 USER 參數來設定容器的預設使用者,同時,也可以利用執行環境/架構的設定來避免容器的預設使用者是 root。

    Make executables owned by root and not writable
    服務的 binary file 應該避免被任何人修改,容器的預設使用者只需要執行服務的權限,而不是擁有權。

    至於「減少攻擊面」的部分:

    Multistage builds小
    在 image 的建立,可以透過 multistage build 來建立很多層 container,例如在第一層安裝編譯所需的套件,而第二層則只需安裝 runtime 所需的套件(如 openssl 等),再複製第一層所編譯出來的執行檔就可以了。其餘的因開發/編譯所安裝的套件皆不需要放在最後的 image,這樣同時也可以把 image 的大小縮小。

    Distroless & Truested image
    採用最小/最輕量化的 base image 來作為你打造 image 的基礎,同時使用可信任來源的 image,避免不小心在未知的情況引入好幾個潛在的安全威脅。(在原文中,sysdig 也使用了自身開發的工具來檢測 image 是否有安全問題,如果有需要也能參考看看)

    而再來關於「機敏資訊」的部分:

    Copy
    當你在從你的開發環境複製檔案到 image 當中時,需要非常小心,因為你很可能一不小心就把你的密碼、開發環境的 token、API key 等資訊複製進去了。而且不要以為把 container 裡面的檔案刪掉就沒事了,別忘了 container image 是一層一層堆疊起來的,就算刪掉了,還是能在前面的 layer 裡面找到。

    但如果還是有需要用到這些機敏資料,也可以考慮使用環境變數(docker run -e 引入),或是 Docker secret、Kubernetes secret 也能夠幫你引入這些參數。如果是設定檔的話,則可以用 mount 的方式來掛載到你的 container 裡面。

    總而言之,你的 image 裡面不該有任何機敏資料、設定檔,開發服務時讓服務在 runtime 的時候可以接受來自環境變數的參數才是相對安全的。

    其他的部分:

    其實文章當中還有提到很多製作 image 的注意事項,像是在 deployment 階段,可能你部署的 latest 與實際的 latest 因時間差而不同。又或是在 image 裡面加上 health check,也才能做到狀況監測。

    在容器化服務的時代,開發者不僅需要具備撰寫開發程式的能力,也要對於虛擬化環境有足夠的理解,否則,在對架構不熟的情況就將服務部署上去,或把 image 推送到公開的 registry,都可能造成重要的資料外洩與潛在的資安危機。

  • dockerfile 在 純靠北工程師 Facebook 的最讚貼文

    2021-05-17 11:46:53
    有 66 人按讚

    #純靠北工程師4w2
    ----------
    repo底下的每個資料夾都只放一支.js,在那個.js旁邊寫個package.json
    然後在dockerfile裡面對目錄作迴圈npm install

    ----------
    💖 純靠北官方 Discord 歡迎在這找到你的同溫層!
    👉 https://discord.gg/tPhnrs2

    ----------
    💖 全平台留言、文章詳細內容
    👉 https://init.engineer/cards/show/6338

  • dockerfile 在 BorntoDev Facebook 的最佳解答

    2021-04-30 13:14:39
    有 277 人按讚

    📌 มาจ้า มาตรงนี้จ้า !! ชี้เป้าคอร์สฟรี โหดจัด สาย DevOps นี่พลาดไม่ได้ กับ "DevOps with Docker & Node.js" จาก freeCodeCamp
    .
    บอกเลยว่าคอร์สนี้ไม่ไก่กา เพราะจัดเต็มกว่า 5 ชั่วโมง (ยาวขนาดนี้จบไปทำได้แน่นอน !) แถมยังมากับหัวข้อที่จำเป็นมาก ๆ ไม่ว่าจะเป็น
    .
    👉 Part 1: Introduction บทนำจัด ๆ สำหรับผู้เริ่มต้น
    Intro & demo express app
    Custom Images with Dockerfile
    Docker image layers & caching
    Docker networking opening ports
    Dockerignore file
    Syncing source code with bind mounts
    Anonymous Volumes hack
    Read-Only Bind Mounts
    Environment variables
    loading environment variables from file
    Deleting stale volumes
    Docker Compose
    Development vs Production configs
    .
    👉 Part 2: Working with multiple containers สำหรับคนอยากทำหลายคอนเทนเนอร์
    Adding a Mongo Container
    Communicating between containers
    Express Config file
    Container bootup order
    Building a CRUD application
    Sign up and Login
    Authentication with sessions & Redis
    Architecture Review
    Nginx for Load balancing to multiple node containers
    Express CORS
    .
    👉 Part 3: Moving to Prod บทนี้ได้ลงมือทำจริงเลยว่าต้องใช้อะไรบ้าง !
    Installing docker on Ubuntu(Digital Ocean)
    Setup Git
    Environment Variables on Ubuntu
    Deploying app to production server
    Pushing changes the hard way
    Rebuilding Containers
    Dev to Prod workflow review
    Improved Dockerhub workflow
    Automating with watchtower
    Why we need an orchestrator
    Docker Swarm
    Pushing changes to Swarm stack
    .
    ✅ ครบกว่านี้ไม่มีอีกแล้วจ้าา แอดบอกเลย หากใครรอไม่ไหวแล้ว อดใจไม่อยู่ ตามแอดมาได้เลยคร้าบบ > https://www.youtube.com/watch?v=9zUHg7xjIqQ
    .
    borntoDev - 🦖 สร้างการเรียนรู้ที่ดีสำหรับสายไอทีในทุกวัน

你可能也想看看

搜尋相關網站