導航:首頁 > 源碼編譯 > 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鏡像內編譯相關的資料

熱點內容
c編譯器發布視頻 瀏覽:801
python絕配 瀏覽:647
2017年安卓機皇是什麼手機 瀏覽:830
程序員做手工製作 瀏覽:142
如何將伺服器沉入水裡 瀏覽:448
如何在屏幕上不顯示常用app 瀏覽:508
python3課程 瀏覽:175
java8編程開發入門 瀏覽:952
如何找出文件夾中同一尺寸的圖片 瀏覽:681
bg在伺服器是什麼意思 瀏覽:899
java資源下載 瀏覽:530
程序員學習的游戲軟體 瀏覽:929
編程里的面向90度是哪個方向 瀏覽:84
pdf游標 瀏覽:581
java發布web項目 瀏覽:467
圖形化拖拽編程框架 瀏覽:233
飢荒android版 瀏覽:569
福建編程機構萬 瀏覽:322
烽火交換機命令 瀏覽:584
win10uefilinux 瀏覽:837