借助Docker hub自己手动制作镜像(以Nginx镜像为例)
借助Docker hub自己手动制作镜像(以Nginx镜像为例)
- 前言
- 一、Docker hub是什么?
- 二、镜像制作步骤
- 1.进入Docker hub官网,获取源文件
- 2.制作镜像
- 3.验证镜像
- 总结
前言
Docker作为目前主流技术,主要有以下优点:
- 简化程序:
Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,便可以实现虚拟化。 - 节省开支:
一方面,云计算时代到来,使开发者不必为了追求效果而配置高额的硬件,Docker 改变了高性能必然高价格的思维定势。Docker 与云的结合,让云空间得到更充分的利用。不仅解决了硬件管理的问题,也改变了虚拟化的方式。 - 多样化:
Docker 镜像中包含了运行环境和配置,所以 Docker 可以简化部署多种应用实例工作。比如 Web 应用、后台应用、数据库应用、大数据应用比如 Hadoop 集群、消息队列等等都可以打包成一个镜像部署。
在日常使用过程中,如果想获取镜像,通常通过docker search & docker pull
即可获取到自己想要的镜像,但有时会出现官方镜像版本过低无法满足自己要求的情况,一方面不放心使用别人打的第三方镜像,一方面自己制作流程过于繁琐容易出问题,此时即可借助Docker hub自己来手动制作一个镜像。
一、Docker hub是什么?
目前 Docker 官方维护了一个公共仓库 Docker Hub,其中已经包括了数量超过 2,650,000 的镜像。大部分需求都可以通过在 Docker Hub 中直接下载镜像来实现。
Docker Hub地址:https://hub.docker.com/
二、镜像制作步骤
1.进入Docker hub官网,获取源文件
点击NGINX,进入NGINX介绍页:
这里就是Nginx镜像的介绍页,其中Tags
中就是目前Docker hub上所有的Nginx镜像版本,今天我们主要讲如何通过Maintainers
来手动制作镜像。
点击the NGINX Docker Maintainers:
进入到Docker hub的官方脚本库了,这里就是本文的主角了:制作Nginx镜像的Dockerfile文件以及所有脚本。
2.制作镜像
将上述Dockerfile文件及脚本全部下载到本地:
注:我这里的DockerfileNginx1231就是Docker hub上的Dockerfile,没有作任何修改。
制作Nginx镜像:
- 修改DockerfileNginx1231文件,将
ENTRYPOINT ["/docker-entrypoint.sh"]
改为ENTRYPOINT ["sh", "/docker-entrypoint.sh"]
,此处不改的话镜像启动时会报错。 - 制作镜像,
docker build -t nginx:1.23.1-0.2 -f DockerfileNginx1231 .
MacBook-Pro-2 ~/temp/nginxImage docker build -t nginx:1.23.1-0.2 -f DockerfileNginx1231 .
[+] Building 2.3s (11/11) FINISHED=> [internal] load build definition from DockerfileNginx1231 0.4s=> => transferring dockerfile: 46B 0.0s=> [internal] load .dockerignore 0.3s=> => transferring context: 2B 0.0s=> [internal] load metadata for docker.io/library/alpine:3.16 1.8s=> [1/6] FROM docker.io/library/alpine:3.16@sha256:7580ece7963bfa863801466c0a488f11c86f85d9988051a9f9c68cb27f6b7872 0.0s=> [internal] load build context 0.0s=> => transferring context: 187B 0.0s=> CACHED [2/6] RUN set -x && addgroup -g 101 -S nginx && adduser -S -D -H -u 101 -h /var/cache/nginx -s /sbin/nologin -G nginx -g nginx nginx && apkArch="$(cat /etc/apk/arch)" && nginxPack 0.0s=> CACHED [3/6] COPY docker-entrypoint.sh / 0.0s=> CACHED [4/6] COPY 10-listen-on-ipv6-by-default.sh /docker-entrypoint.d 0.0s=> CACHED [5/6] COPY 20-envsubst-on-templates.sh /docker-entrypoint.d 0.0s=> CACHED [6/6] COPY 30-tune-worker-processes.sh /docker-entrypoint.d 0.0s=> exporting to image 0.0s=> => exporting layers 0.0s=> => writing image sha256:a684e750ca130ccc802c7235e96753eda7c91a59ade3ec344c2833f2307ff36c 0.0s=> => naming to docker.io/library/nginx:1.23.1-0.2 0.0sUse 'docker scan' to run Snyk tests against images to find vulnerabilities and learn how to fix them
- 查看镜像是否制作成功
MacBook-Pro-2 ~/temp/nginxImage docker images |grep nginx
nginx 1.23. a684e750ca13 23 hours ago 23.5MB
nginx 1.23.1 a684e750ca13 23 hours ago 23.5MB
nginx 1.23.1-0.1 a684e750ca13 23 hours ago 23.5MB
nginx 1.23.1-0.2 a684e750ca13 23 hours ago 23.5MB
3.验证镜像
查看新镜像版本(启动命令略):
MacBook-Pro-2 ~/temp/nginxImage docker exec -it aeece508702743cecd /bin/sh
/ # nginx -v
nginx version: nginx/1.23.1
/ #
其余功能均验证无误,到此一个新版本的镜像就制作结束了。
总结
以上就是今天要讲的内容,本文简单介绍了如果借助Docker hub的官方脚本及Dockerfile文件来手动制作镜像,Dcoker技术是划时代的,它帮我们简化了很多步骤,欢迎大家讨论交流。
借助Docker hub自己手动制作镜像(以Nginx镜像为例)相关推荐
- Docker Hub 最受欢迎的10大镜像
Docker CEO Ben Golub在2014年的DockerCon上发布Docker Hub,并指出已经有超过14,000个Docker化的应用存储在他们的publc registry中.而根据 ...
- dockerfile安装yum_Docker镜像-基于DockerFile制作yum版nginx镜像
Docker镜像-基于DockerFile制作yum版nginx镜像 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. DockerFile可以说是一种能被Docker程序解释的脚本, ...
- dockerfile以alpine为基础镜像构建nginx镜像
dockerfile以alpine为基础镜像构建nginx镜像 文章目录 dockerfile以alpine为基础镜像构建nginx镜像 1:alpine 2:alpine软件包管理命令 apk ad ...
- 详细介绍借助Docker Hub访问gcr.io镜像
前言 在搭建 Kubernetes 集群时,国内用户遇到的第一个问题就是无法访问 gcr.io 镜像,直接导致无法初始化集群也就没有办法成功搭建 Kubernetes 集群. 通常要解决此问题有几种方 ...
- docker hub push_如何制作Docker镜像(image)?
制作Docker镜像一般有2种方法: 使用hub仓库中已有的环境,安装自己使用的软件环境后完成image创建 通过Dockerfile,完成镜像image的创建 下面通过展示具体操作方法: 第一种:使 ...
- centos7 安装英伟达驱动;cuda;docker离线安装;docker gpu离线安装;制作自己的cuda镜像;安装 容器中ssh协议
原创不易,谢谢! centos7 安装英伟达驱动,cuda,docker安装,docker gpu安装,制作自己的cuda镜像,docker ssh协议 无论是笔记本还是台式电脑,这一步关键 参考资料 ...
- Docker仓库管理镜像 -- 公共仓库【Docker Hub】和私人仓库【Registry】和【harbor】
镜像仓库管理 docker仓库,用来管理镜像.主要分为公共仓库和私人仓库.下面介绍了公共仓库Docker Hub.私人仓库Registry和harbor. DockerHUb仓库管理 什么是Docke ...
- docker如何push镜像到docker hub个人的仓库
docker如何push镜像到docker hub个人的仓库 step1--找到本地镜像的ID:docker imagesstep2--登陆Hub:docker login --username=us ...
- .NET Core 2.1 容器镜像将从 Docker Hub 中删除
.NET Core 2.1 容器镜像将从 Docker Hub 中删除 Richard 2021 年 8 月 16 日 从 8 月 21 日开始,.NET Core 2.1 Docker 容器镜像将不 ...
最新文章
- 10大排序算法JAVA源码实现
- 企业安全体系建设方案设计(内附案例)
- Boost : to_string_stub用法的测试程序
- 数据结构题:根据所给权值设计相应的哈夫曼树,并设计哈夫曼编码
- “天下第一长联”与“元跨革囊”
- 数据库中字段类型Number(n,m)大概说明
- android 自动化 录制,android 自动化录制回放测试工具
- hdu 1512 Monkey King 左偏树
- 多表连接的三种方式 HASH MERGE NESTED
- 无盘服务器秒卡 锐起0359,锐起无盘系统问题汇集
- 人教版四年级上次计算机教案,人教版四年级上册数学教案
- DirectShow 简介
- 大学物理公式和名词整理
- 机器学习笔记之基础概念
- Linux系统学习环境搭建 - 跟小智一起学网络(3)
- 普瑞PS8742 Switch V0.9
- linux系统的特点有什么
- 风投Placeholder的区块链价值观,了解一下
- 路边拾遗之其他模块(struct/csv/xlwt/smtp)
- reghdfe:多维面板固定效应估计
热门文章
- C#语言入门详解1-12
- 解决vue中无法取得methods方法中的return值,获得是undefined
- 当前服务器系统内核版本是多少,linux下如何查看系统和内核版本
- 软件测试工程师简历项目经验怎么写?--1000套软件测试工程师简历
- Elasticsearch中安装IK分词器
- golang 实现 pdf 转高清晰度 jpeg
- 用苹果手机计算机程序二,两台iPhone怎么互传软件 苹果手机互传应用的3个小技巧...
- 深度学习之数据处理——如何将图片和标签打乱并划分为训练集和测试集
- 简说window操作系统
- 命令启动edge浏览器且全屏