使用Docker构建企业级自定义镜像的方法
作者:java_small_ant 发布时间:2022-06-09 08:14:00
前言
临下班前,楼主接到了一个需求,由于基础镜像标准发生变更,需要按照最新的Docker 镜像标准构建自己应用的自定义镜像。目前的标准是这样的:基础架构组只提供所有项目必须接入的3个公共镜像,这3个公共基础镜像包含了:JDK8、Skywalking、Arthas。对于各自业务组的应用如果还需要加入其它镜像,则由各个业务组自己基于基础架构组提供的公共镜像之上,再添加自定义的镜像,结构图如下:
构建步骤
编写Dockerfile
基于最新的规范来看,我们需要编写一个Dockerfile,然后引用基础架构组提供的基础镜像,再加入应用需要的其他镜像。因此最终的 Dockerfile 文件如下:
FROM 基础镜像地址
RUN apk add 需要添加的自定义镜像
...
在Centos7下安装Docker环境
卸载旧版本
较旧的 Docker 版本称为 docker 或 docker-engine 。如果已安装这些程序,请卸载它们以及相关的依赖项。
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
安装 Docker Engine-Community
使用 Docker 仓库进行安装
在新主机上首次安装 Docker Engine-Community 之前,需要设置 Docker 仓库。之后,您可以从仓库安装和更新 Docker。
设置仓库
安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。
$ sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
使用以下命令来设置稳定的仓库。
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
安装 Docker Engine-Community
安装最新版本的 Docker Engine-Community 和 containerd,或者转到下一步安装特定版本:
$ sudo yum install docker-ce docker-ce-cli containerd.io
如果提示您接受 GPG 密钥,请选是。
有多个 Docker 仓库吗?
如果启用了多个 Docker 仓库,则在未在 yum install 或 yum update 命令中指定版本的情况下,进行的安装或更新将始终安装最高版本,这可能不适合您的稳定性需求。
Docker 安装完默认未启动。并且已经创建好 docker 用户组,但该用户组下没有用户。
要安装特定版本的 Docker Engine-Community,请在存储库中列出可用版本,然后选择并安装:
1、列出并排序您存储库中可用的版本。此示例按版本号(从高到低)对结果进行排序。
$ yum list docker-ce --showduplicates | sort -r
docker-ce.x86_64 3:18.09.0-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.1.ce-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.0.ce-3.el7 docker-ce-stable
2、通过其完整的软件包名称安装特定版本,该软件包名称是软件包名称(docker-ce)加上版本字符串(第二列),从第一个冒号(:)一直到第一个连字符,并用连字符(-)分隔。例如:docker-ce-18.09.1。
$ sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
启动 Docker。
$ sudo systemctl start docker
通过运行 hello-world 映像来验证是否正确安装了 Docker Engine-Community 。
$ sudo docker run hello-world
开始构建应用自定义镜像
根据 Dockerfile 文件进行自定义镜像的构建
在Dockerfile 文件所在的目录下执行如下命令进行自定义镜像的构建:
sudo docker build -f Dockerfile -t 你的自定义镜像名称 .
推送到企业私有的镜像harbor之前进行登录
docker login 企业私有的harbor地址
输入用户名
输入密码
完成登录
将构建完成的自定义镜像推送到企业私有的harbor
sudo docker push 你的自定义镜像名称
总结
通过 1.编写自定义构建镜像的Dockerfile 2.安装Docker环境 3.构建自定义镜像 4.上传自定义镜像到harbor 以上4个步骤,我们便完成了应用自定义镜像的构建,后续我们自己的应用中直接使用自定义镜像即可,这样做的好处就是基于基础的镜像,我们可以随意组合,构建出满足自己应用的镜像,更灵活、镜像分层管理、可扩展。
来源:https://segmentfault.com/a/1190000022689417
猜你喜欢
- 目前在中文搜索引擎领域,国内的搜索引擎已经和国外的搜索引擎效果上相差不远。但是SWJ认为其技术能力等方面还是相差国外先进水平有一定的距离 不
- 第一绝招:产品定位在网上开个小店,和在网下开个实物店,是完全不一样的,在网下,只要你的店的位置不要太差,小生意就可以做的还不错,就算是卖很大
- 在自己的电脑上安装了一个 Linux ubuntu系统,第一次安装,记录下每一步步骤,以下是安装过程:第一步:下载ubuntu镜像文件&nb
- 近日有很多站长服务器被入侵,被入侵后真是措手不及啊,“站长安全网”Jack为大家分析服务器被入侵前后的一些细节和处理方式,希望能为大家祈祷抛
- 下面是一个程序员用专业编程术语写的真情告白,常用的专业术语都用上了,强悍呀!是程序员的一定要看看啊!《程序员的真情告白》我能抽象出整个世界但
- 或许你已经注意到了,百度在最近些日子改版了。是的,就像图中的那样,他的框计算改进了。更加智能,更加先进,也更加可怕。过去我曾经写过一篇百度的
- 前几天写了几篇关于做网站的软文,为了方便和大家交流,特意留下了自己的联系方式。这几天一上线就有不少朋友加我的qq,不少加我的朋友都是刚接网站
- 1、编写一个简单的java程序public class testshell { public static void main(
- 博客作为博主与博友的交流平台,经常会有博友发表评论及回复,但是博客并不像即时聊天工具那样具有时时交流的功能,不过我们可以通过评论通知插件发送
- 对于网络游戏,本人历来是不怎么喜欢,只因下载的客户端庞大。98年至今本人还一直保留着一款红色警戒游戏,既可以单机,也可以偶尔联网对垒一下。随
- 广告颜色是广告优化中一个富有创造性的要素。 Google AdSense 帐户中不仅提供了调色板供您选择,您还可以自定义广告颜色。广告颜色的
- 上周末Linux之父Linus Torvalds对Windows 7竖起了大拇指,在今天的Ubuntu 9.10发布电话会议上,Ubuntu
- 今天来介绍Godaddy主机用户怎样使用Microsoft Publisher 2003创建FTP位置,具体步骤如下:首先.从Microso
- 我就在想是否tag对搜索优化有没有影响?先来看看tag的介绍,标签是英文tag的中文翻译,又叫“自由分类”、“分众分类”,是用户根据自己对事
- vmware workstations启动虚拟机报错根据报错当中链接链接https://kb.vmware.com/s/article/21
- wordpress博客是很多朋友喜欢的程序,不仅仅在于它本身的好用,而且它有丰富的主题和无数的使用者在为他们写上优秀的插件,通过各类的插件更
- 说它最权威是因为是Google工程副总裁,负责排名算法的Udi Manber,发表在Google官方博客的一个帖子。下面捡主要内容翻译一下,
- 一。域名管理面板1。在Godaddy账户中点击Domain manage进入域名管理2。域名管理界面如下面两个图片所示,左侧是管理选项,右侧
- 如题,我的网站是新开的网站,网站的域名也没有任何记录的新域名。如果大家不相信,就可以新去站长网的站长工具栏目查看下我的域名注册信息,我的域名
- 如何增加网站访问量?以下是你可以考虑采用29个方法。其中,你或许已经采用了一些,有的方法你可能忘了采用,还有一些是你从来没有听说过的。总之,