導航:首頁 > 源碼編譯 > docker鏡像內編譯

docker鏡像內編譯

發布時間:2024-09-28 18:13:11

Ⅰ 編寫前端開發環境的docker 鏡像並發布及使用教程

如果之前沒有接觸過docker,建議把 https://docs.docker.com/get-started/ 中的part1-part10看完並實現一遍再來看本篇文章。

製作一個docker 鏡像,其內置了Node v12.22、 npm源管理器nrm、單頁面腳手架wlg-cli、多頁面腳手架mp-cli-lc、browser-sync插件及curl、vim和git等,無需在主機中安裝且這樣統一了前端開發環境。

1、編寫Dockerfile文件

2、構建鏡像文件 docker image build -t front-end-env . (這里取鏡像名稱為front-end-env)
3、使用命令行登錄docker docker login -u 你的docker用戶名
4、打標簽 docker tag front-end-env 你的docker用戶名/front-end-env
5、 上傳至倉庫 docker push 你的docker用戶名/front-end-env

1、使用如下指令進入docker容器內部
docker container run -p 3000:3000 -it 你的用戶名/front-end-env /bin/bash
(-p 3000:3000將容器內的3000埠暴露給主機3000埠,下圖中我沒有加這個)

2、驗證docker容器內部的nrm是否安裝成功

上圖,可以看到我們成功的將主機的當前目錄及文件掛載綁定到docker容器內了,進入到docker容器內後我們創建一個文件夾,在主機也會同步的創建了相同的文件夾,因為此時他們是同步的。ps:如果使用vscode,可以試試Remote-Containers 插件,可以更簡單。(本人沒有親測過)

題外話:
1、藉助虛擬機和Vagrant也可以實現類似統一環境功能。
2、使用Docker Compose可以簡化上述操作

推薦資料:
1、 https://wurang.net/webpack_hmr/
2、 https://juejin.cn/post/6932808129189150734
3、 https://www.cnblogs.com/pomelott/p/13325328.html
4、docker中的expose https://blog.csdn.net/weixin_43944305/article/details/103116557

Ⅱ 如何在"特殊"的網路環境下編譯 Docker

由於 Docker 編譯需要依賴於 Docker Daemon ,所以只能在 64 位的 linux 環境下先安裝 Docker 程序,再從 Github 上克隆 Docker 的代碼進行編譯。
在 Docker 的目錄下執行 make 命令將默認執行 Makefile 中 make binary 指令進行編譯。
?

default: binary

all: build
$(DOCKER_RUN_DOCKER) hack/make.sh

binary: build
$(DOCKER_RUN_DOCKER) hack/make.sh binary

cross: build
$(DOCKER_RUN_DOCKER) hack/make.sh binary cross

從以上的 Makefile 可以看出,執行 make、make binary、make all 或 make cross 都可以得到可運行的 Docker 程序。
在 Mac OS 環境下使用 brew 的命令安裝 Docker ,只能得到一個 docker client 的二進製程序,如果以 daemon 的方式運行,會得到 『This is a client-only binary - running the Docker daemon is not supported.』 的錯誤提示信息。
方法 1.
使用 VirtualBox 或者 VMWare Workstation 安裝一個 Linux 的虛擬機。宿主機使用 VPN 等方案使網路「正常」訪問各種「服務」,虛擬機網卡使用 NAT 模式。在 Linux 虛擬機內使用 make 進行編譯 Docker 不會有任何網路問題。只是編譯速度受限於 VPN 等網路解決方案,有可能等待時間很長。
方法 2.
Docker 每次發布新版本,都會在 docker-dev 的鏡像倉庫發布一個新的標簽,這個鏡像倉庫包含了編譯 Docker 鏡像所依賴的所有環境,只需替換 Docker 代碼目錄下的 Dockerfile 即可實現編譯 Docker 。
?

FROM docker.cn/docker/docker-dev:v1.2.0
VOLUME /var/lib/docker
WORKDIR /go/src/github.com/docker/docker
ENV DOCKER_BUILDTAGS apparmor selinux
ENTRYPOINT [「hack/dind」]
COPY . /go/src/github.com/docker/docker

Dockerfile 中只保留必要的步驟就可以實現編譯了。

Ⅲ 【docker基礎系列】Docker 國內鏡像源配置步驟和原理


Docker 國內鏡像源配置步驟和原理


為了提升 Docker 鏡像下載速度,國內的鏡像源配置是必要的。常用的國內鏡像源包括 registry.docker-cn.com、docker.mirrors.ustc.e.cn、hub-mirror.c.163.com、mirror.bce.com 和 ccr.ccs.tencentyun.com。配置國內鏡像源的步驟如下:



  1. 在 Docker 的配置文件 /etc/docker/daemon.json 中,添加或修改 "registry-mirrors" 數組,以英文逗號分隔多個鏡像源地址,如 registry.docker-cn.com, docker.mirrors.ustc.e.cn 等。

  2. 保存配置並重啟 Docker 的 daemon 進程和 Docker 服務以使更改生效。

  3. 通過執行 `docker info` 命令,確認鏡像源配置是否成功,如果顯示有國內鏡像源的地址,則說明配置成功。


配置國內鏡像源的主要原因是,國外鏡像源的網路傳輸距離遠,可能導致下載速度慢和不穩定。通過切換到國內鏡像源,可以減少延遲,加快鏡像下載,同時確保鏡像的及時性和完整性。此外,國內鏡像源可能提供額外服務,如緩存和加速功能,提升用戶體驗。


如果有多台 Docker 守護進程,可以考慮使用本地 Registry 作為拉取緩存,以減少網路流量。但需要注意,私有倉庫鏡像通常不能被鏡像,只能拉取 Docker Hub 的內容,並遵守 Docker 的公平使用政策。


閱讀全文

與docker鏡像內編譯相關的資料

熱點內容
必修一數學PDF 瀏覽:775
javascriptphpjsp 瀏覽:811
深圳一程序員退房完整版 瀏覽:294
後台管理app哪個好 瀏覽:766
加密鎖無模塊什麼意思 瀏覽:22
加密國度英文 瀏覽:20
科沃斯用了app怎麼使用按鍵 瀏覽:663
爬蟲編譯器價格 瀏覽:885
支付寶視頻app會員自動扣費怎麼關 瀏覽:230
單片機和wifi模塊 瀏覽:725
python倒序二進制代碼 瀏覽:362
廣東程序員離職 瀏覽:586
golang核心編程 瀏覽:170
中小學計演算法則 瀏覽:85
無職轉生哪個app能看 瀏覽:580
夏夢迪在哪個app 瀏覽:107
c編譯軟體cl 瀏覽:933
逗比的程序員頭像 瀏覽:984
單片機原理作業答案 瀏覽:230
文件夾的東西怎麼能轉成文檔 瀏覽:968