發表文章

目前顯示的是有「image」標籤的文章

如何建置一個通過 DTR 弱點掃描的 Image ?

Docker EE 產品裡有一個重要的軟體元件 DTR (Docker Trusted Registry), 用來作為叢集內私有 image 倉庫,保存 image, 管理 image 清單,同時提供 image 數字簽署,CVE 弱點掃描,image 鏡像拷貝等等功能。 今天這篇文章說明如何建置一個儘可能去除所有嚴重或大型的弱點,儘可能通過 DTR 弱點掃描的 Base Image, 這裡給出幾個重要方針供參考。 以下說明以 Linux image 為例。 Windows 環境的 base image 不是開源的, 有任何安全上的弱點皆需要由微軟官方提供更新,因此不在本文討論範疇。 1. 使用 alpine 作為起始 base image 而不是其他 Linux base image 像是 CentOS, UBUNTU. alpine 比較小,小於 5MB,預設裡面只有最小足以開機以及能夠運行 shell 環境的二進制檔案內容。 其 C lib 是使用優化過的靜態函式庫 musl 所組成。 由於包含的軟體內容不多,因此相對其他 distribution 更安全。 如果需要其他的工具,像是 ssh ,預設裡面沒有,要另外編寫 Dockerfile 並建置。 有需要的軟體工具再加進去,不需要的不要加入。 2. 同樣地,對於包含 middleware 內容的 base image,儘可能使用其底層以 alpine 系統所堆疊起來的, 舉幾個例子:要使用 Python v3.7.4 的 image 時, 應該選擇用 $ docker pull python:3.7.4-alpine3.10 而不是 $ docker pull python:3.7.4-buster 另外,關於常見的 nginx image (v1.16.1), 應該選擇用 $ docker pull nginx:1.16.1-alpine 而不是 $ docker pull nginx:1.16.1 3. 承上,從 Docker Hub 拉下來的 alpine image, 要再做內部更新,多建置一次產生新的 layer 然後再堆疊應用程式。 編寫 Dockerfile 的時候, 在任一個 FROM 指令指明所需要的 Alpin...

Docker 環境下的 Proxy 配置

關於 Docker 環境下的 Proxy 配置,需要先根據問題具體情況分辨配置方法,有兩種:一個是 docker daemon 的配置,這主要是為了能讓 docker host 通過 proxy server 使用 docker pull/docker run 存取遠端 registry;另一個是 docker client 為了建置 image 或運行 container 的時候所需要的網路配置。 首先快速回顧一下 Linux 作業系統中命令行環境的 proxy 配置方法,以 CentOS 系統環境為例,假設一台 HTTPS proxy server 位在 192.168.1.34 而且 port 是 3128: # environment variables for https proxy # export https_proxy="https://192.168.1.34:3128/" 如果 Proxy server 需要輸入帳號密碼,則用下面這樣的形式 # Https proxy with authentication # export https_proxy="https://username:password@192.168.1.34:3128/" 之後 ping 8.8.8.8 看看Internet是否有連通,可以的話就可在 shell 環境下使用軟體包管理器像是 yum, apt-get 等等,安裝新的軟體,但是,同樣的作業系統環境變數設定對於 Docker 引擎不起作用。 Docker 環境下的 Proxy 配置,根據問題具體情況分為 docker daemon 以及 docker client 的配置,下面分別詳細說明。以下方法可適用在 Docker CE 或 Docker EE 17.06 以上的版本。 (一)Docker daemon 的 proxy 配置 如果 Docker host 處於 air-gapped 的環境下,需要先配置 proxy 才能連到 Internet,否則直接用 docker pull 或相關的命令從遠端 registry 來存取 docker images 會遭遇失敗。 以 CentOS,RedHat, Debian, Ub...

熱門文章

Docker 環境下的 Proxy 配置