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

热点内容
pythondataframe 浏览:447
单片机的继电器原理图怎么画 浏览:893
自学程序员好考吗 浏览:976
还款解压再质押 浏览:967
doc2pdf 浏览:389
Android提示为空 浏览:620
sql预编译和执行的语法 浏览:109
复盛压缩机选型软件 浏览:744
android培训大纲 浏览:58
docker镜像内编译 浏览:861
缴纳社保app哪个好 浏览:414
哪个app跑步有钱 浏览:58
货币理论pdf 浏览:426
python35键盘输入 浏览:289
安卓手机头部自定义怎么取消 浏览:26
python套利交易 浏览:790
java配置环境变量win8 浏览:903
输解压密码时候压缩文件损坏 浏览:403
xampp如何运行php项目 浏览:905
哪个app团购电影票最便宜 浏览:623