在Apple M1測試 Docker 安裝 開源ERP odoo心得
第一先裝了這個 M1 docker 預覽版
https://docs.docker.com/docker-for-mac/apple-m1/
裝好後照軟體下指令
就先裝好了 Docker Developer Preview for M1
參考 https://hub.docker.com/_/odoo
安裝odoo 14 docker
docker pull odoo --platform linux/amd64
(正常x86不用加 --platform linux/amd64)
docker run -d -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo -e POSTGRES_DB=postgres --name db postgres:10
docker run -p 8069:8069 --name odoo --link db:db -t odoo
打開本機browser 8069 就可以跑odoo了
說真的 docker團隊還願意讓docker 從 HyperKit 換到macOS Big Sur的API Framework Virtualization.
所以可以跑x86 image 容器.但M1都有不少效能折損了
假設換成raspberry pi開發板,就只能限定用arm image(這樣限制不少)
所以必備一台x86 小電腦應用於docker 是很有用的.
https://osslab.tv/shop/acute_angle_mini_pc/
「docker run 指令」的推薦目錄:
docker run 指令 在 矽谷牛的耕田筆記 Facebook 的最佳貼文
今天這篇文章是作者工作多年來,對於 Dockerfile 的一些想法與學習到的經驗,主要內容是講述到底如何最佳化 Dockerfile 的內容,實作上有哪些底可以參考與注意
1. 利用 Cache 的概念來加速建置的時間,最明顯的範例就是 RUN 這個指令,很常看到大家會透過一次 RUN 指令來安裝全部使用的套件,而非每個指令單獨一個 RUN,後者會產生眾多的的 Layer 數量
2. 沒有使用到的套件就不需要安裝,盡量保持精準原則,只安裝必要的相依性套件。這過這些階段可以節省一些 Image 大小,對於未來下載與部署都能夠有一些速度上的提升
3. 採用官方的 image 作為 base image,這部分的安全性會更佳保證,同時內容也會有專門團隊維護。此外 tag 部份也要注意不要使用 latest,最好能夠針對需求去固定版本,以免上游更新後,重新建置的 image 產生出不同的執行結果,這時候除錯也很麻煩
4. 採用 Multi-stage 的方式來建置你的環境,最常見的範例就是將編譯環境與執行環境分開。第一個 Stage 先準備建置環境,安裝相關的工具最後編譯出執行檔案,接者把該檔案複製到第二個 Stage 去單純執行即可
除了這些外,也有些滿常見的概念譬如,能的話盡量透過 USER 去指定使用者,而不是採用 root 的方式直接碾壓過去。
至於要不要使用 Alpine ,這部分見仁見智,畢竟 Alpine 某些版本會有些問題,特別是 Kubernetes 內可能會有 DNS 查詢的問題
我個人是非常討厭精簡化的容器,因為當發生問題想要進去看的時候,連一些工具都沒有,有的連 shell 都沒有,完全不給人除錯用
https://blog.bitsrc.io/best-practices-for-writing-a-dockerfile-68893706c3
docker run 指令 在 矽谷牛的耕田筆記 Facebook 的最讚貼文
Docker 網路入門篇最終章
本篇文章延續之前的內容來探討 Docker 的 Bridge 網路模型,這次我們要研究的是到底 docker run -p 12345:80 這種指令背後到底做了哪些事情,除了 iptables 的 DNAT 外,實際上還有一個名為 docker-proxy 的應用程式也被跑了起來。
到底 docker-proxy 是做什麼用的,與 iptables 的關係是什麼,有興趣的可以看看本篇文章。
歡迎留言讓我知道你想要探討學習的任何入門網路議題
相關資源
資訊推播頻道 Telegram: https://t.me/technologynote
粉絲頁內容索引網站:
https://technologynoteniu.github.io/awesome-notes/
kubernetes 線上課程: https://technologynoteniu.github.io/awesome-notes/course/
https://www.hwchiu.com/docker-network-model-lab-dnat.html
docker run 指令 在 Docker 基本教學與指令 - GitHub 的推薦與評價
docker run. 建立Container. # -i: 讓標準輸入維持在打開的狀態# -t: 替Container配置一個虛擬的終端 ... ... <看更多>
docker run 指令 在 docker run指令在Youtube上受歡迎的影片介紹|2022年07月 的推薦與評價
docker run 與docker start 指令的差別如下。 docker run <image_name> 建立一個新的docker容器並執行。 docker start <container_name> 則是啟動 ... ... <看更多>
docker run 指令 在 [Docker] Docker 指令小抄 的推薦與評價
Dockerfile 相關指令 ; RUN, 執行某一個命令,且執行完後會建立新的image。 通常用於在container 下載套件 ; CMD, 指令可以被複寫的預設命令。 詳細請看下方 ... ... <看更多>