Docker搭建本地私有仓库及镜像制作方法

Docker默认是从registry.hub.docker.com拉取镜像,当我们因为某些原因无法访问默认地,就需要搭建一个本地私有镜像仓库,以及制作docker镜像。

部署私有仓库

部署docker

安装并启动docker:

部署registry

拉取并启动registry:

验证registry

通过以上命令可知目前仓库为空,现在从docker官方拉取一个nginx镜像做测试:

先注册本地仓库(所有需要使用私有仓库的docker客户端都需要修改),修改配置/etc/docker/daemon.json

上传镜像后就可以使用了,以下是验证结果:

从其他主机也可以拉取该仓库的镜像,以下是验证结果:

至此,本地私有镜像仓库搭建完成。

制作本地镜像

通过commit制作镜像

该方法适用于对原有镜像基础上进行修改,然后保存为新镜像,基本语法和构建流程如下:

  1. 运行原容器:docker run -it <OLD_IMAGE>
  2. 修改原容器:docker exec -it <OLD_IMAGE>
  3. 保存新镜像:docker commit <OLD_IMAGE> <NEW_IMAGE>
  4. 验证新镜像:docker run -it <NEW_IMAGE>
  5. 推送至仓库:docker push <TAG><NEW_IMAGE>

通过commit构建的都是黑箱镜像,构建时会引入一些无用的文件导致体积臃肿,也会保留历史操作导致难以维护,因此不建议使用。

通过build制作镜像

该方法适用于从Dockerfile中构建镜像,基本语法和参数说明如下:

参数 说明
--build-arg=[] 设置镜像创建时的变量
--cpu-shares 设置 CPU 使用权重
--cpu-period 限制 CPU CFS 周期
--cpu-quota 限制 CPU CFS 配额
--cpuset-cpus 指定使用的 CPU ID
--cpuset-mems 指定使用的 内存 ID
--disable-content-trust 忽略校验,默认开启
-f 指定要使用的Dockerfile路径
--force-rm 设置镜像过程中删除中间容器
--isolation 使用容器隔离技术
--label=[] 设置镜像使用的元数据
-m 设置内存最大值
--memory-swap 设置Swap的最大值为内存+swap,"-1"表示不限swap
--no-cache 创建镜像的过程不使用缓存
--pull 尝试去更新镜像的新版本
--quiet, -q 安静模式,成功后只输出镜像ID
--rm 设置镜像成功后删除中间容器
--shm-size 设置/dev/shm的大小,默认值64M
--ulimit Ulimit配置
--tag, -t 镜像的名字及标签,一般格式为name:tag或name
--network 在构建期间设置RUN指令的网络模式,默认default

后续会有Dockerfile的相关文章,本文仅举例如何对现有的Dockerfile构建镜像:

原创文章禁止转载:技术学堂 » Docker搭建本地私有仓库及镜像制作方法

精彩评论

2+2=

感谢您的支持与鼓励

支付宝扫一扫打赏

微信扫一扫打赏