Ⅰ 編寫前端開發環境的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。配置國內鏡像源的步驟如下:
配置國內鏡像源的主要原因是,國外鏡像源的網路傳輸距離遠,可能導致下載速度慢和不穩定。通過切換到國內鏡像源,可以減少延遲,加快鏡像下載,同時確保鏡像的及時性和完整性。此外,國內鏡像源可能提供額外服務,如緩存和加速功能,提升用戶體驗。
如果有多台 Docker 守護進程,可以考慮使用本地 Registry 作為拉取緩存,以減少網路流量。但需要注意,私有倉庫鏡像通常不能被鏡像,只能拉取 Docker Hub 的內容,並遵守 Docker 的公平使用政策。