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

热点内容
php正整数验证 浏览:363
有个腹黑程序员男友是什么体验 浏览:110
pdf添加文本框 浏览:770
系统文件夹很大没有文件 浏览:74
苏宁电器app如何还分期 浏览:635
苹果怎么在主屏幕创建文件夹 浏览:627
河南云服务器租用虚拟主机 浏览:361
centos修改ip命令 浏览:779
租用服务器属于什么服务类型 浏览:135
英雄联盟说没有网络连接到服务器地址 浏览:28
单片机周期信号波形识别 浏览:42
算法驱动的成长史 浏览:936
好又省APP怎么用 浏览:576
pdf在线格式转换jpg格式转换器 浏览:868
中兴捧月算法大赛第二场 浏览:15
穿云服务器 浏览:394
单片机核心电压表 浏览:151
最强大逃顶通达信指标源码 浏览:441
java程序员面试宝典欧立奇 浏览:457
cad命令不要跟着光标 浏览:200