导航:首页 > 源码编译 > 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镜像内编译相关的资料

热点内容
linuxchttp下载 浏览:768
大数据虚拟机云服务器 浏览:55
java与嵌入式开发 浏览:20
minios如何搭建文件服务器 浏览:1000
华为为啥有些压缩包解压不开 浏览:563
oracle可以编译存储吗 浏览:475
机械男和女程序员创业 浏览:799
自己怎么制作软件app 浏览:214
javajson字符串转java对象 浏览:230
必修一数学PDF 浏览:775
javascriptphpjsp 浏览:811
深圳一程序员退房完整版 浏览:294
后台管理app哪个好 浏览:766
加密锁无模块什么意思 浏览:22
加密国度英文 浏览:20
科沃斯用了app怎么使用按键 浏览:663
爬虫编译器价格 浏览:885
支付宝视频app会员自动扣费怎么关 浏览:230
单片机和wifi模块 浏览:725
python倒序二进制代码 浏览:362