使用Docker构建企业级自定义镜像

前言

临下班前,楼主接到了一个需求,因为基础镜像标准发生变动,须要按照最新的Docker 镜像标准构建本身应用的自定义镜像。目前的标准是这样的:基础架构组只提供全部项目必须接入的3个公共镜像,这3个公共基础镜像包含了:JDK八、Skywalking、Arthas。对于各自业务组的应用若是还须要加入其它镜像,则由各个业务组本身基于基础架构组提供的公共镜像之上,再添加自定义的镜像,结构图以下:html

image.png

构建步骤

编写Dockerfile

基于最新的规范来看,咱们须要编写一个Dockerfile,而后引用基础架构组提供的基础镜像,再加入应用须要的其余镜像。所以最终的 Dockerfile 文件以下:linux

FROM 基础镜像地址
RUN apk add 须要添加的自定义镜像
...

在Centos7下安装Docker环境

卸载旧版本

较旧的 Docker 版本称为 docker 或 docker-engine 。若是已安装这些程序,请卸载它们以及相关的依赖项。docker

$ 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。shell

设置仓库centos

安装所需的软件包。yum-utils 提供了 yum-config-manager ,而且 device mapper 存储驱动程序须要 device-mapper-persistent-data 和 lvm2。架构

$ sudo yum install -y yum-utils \
 device-mapper-persistent-data \
 lvm2

使用如下命令来设置稳定的仓库。app

$ sudo yum-config-manager \
  --add-repo \
  https://download.docker.com/linux/centos/docker-ce.repo
安装 Docker Engine-Community

安装最新版本的 Docker Engine-Community 和 containerd,或者转到下一步安装特定版本:ui

$ sudo yum install docker-ce docker-ce-cli containerd.io

若是提示您接受 GPG 密钥,请选是。spa

有多个 Docker 仓库吗?

若是启用了多个 Docker 仓库,则在未在 yum install 或 yum update 命令中指定版本的状况下,进行的安装或更新将始终安装最高版本,这可能不适合您的稳定性需求。code

Docker 安装完默认未启动。而且已经建立好 docker 用户组,但该用户组下没有用户。

要安装特定版本的 Docker Engine-Community,请在存储库中列出可用版本,而后选择并安装:

一、列出并排序您存储库中可用的版本。此示例按版本号(从高到低)对结果进行排序。

$ 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

二、经过其完整的软件包名称安装特定版本,该软件包名称是软件包名称(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
以上安装过程参考自: https://www.runoob.com/docker/centos-docker-install.html

开始构建应用自定义镜像

根据 Dockerfile 文件进行自定义镜像的构建

在Dockerfile 文件所在的目录下执行以下命令进行自定义镜像的构建:

sudo docker build -f Dockerfile -t 你的自定义镜像名称 .

推送到企业私有的镜像harbor以前进行登陆

docker login 企业私有的harbor地址
输入用户名
输入密码
完成登陆

将构建完成的自定义镜像推送到企业私有的harbor

sudo docker push 你的自定义镜像名称

总结

经过 1.编写自定义构建镜像的Dockerfile 2.安装Docker环境 3.构建自定义镜像 4.上传自定义镜像到harbor 以上4个步骤,咱们便完成了应用自定义镜像的构建,后续咱们本身的应用中直接使用自定义镜像便可,这样作的好处就是基于基础的镜像,咱们能够随意组合,构建出知足本身应用的镜像,更灵活、镜像分层管理、可扩展。

weixin关注"SpringForAll社区"不迷路
本文由博客一文多发平台 OpenWrite 发布!
相关文章
相关标签/搜索