虚拟化专栏12_docker源码构建nginx镜像并推送至harbor

孤街浪徒 提交于 2019-12-07 14:16:06

开发,测试环境不同会引起很多问题。用docker创建适用开发场景的镜像,将镜像推送到docker仓库中,随取随用,便捷高效。
构建容器有两种方式,一种是镜像的叠加,一种是基于容器构建镜像,常用的构建方式为基于镜像叠加构建。本文将讲述如何源码构建镜像、将nginx镜像推送到docker仓库harbor上、在本地拉取nginx镜像并创建容器。

  1. docker容器中源码构建nginx镜像
    前期准备,在虚拟机上配置并安装docker,详细步骤见Docker入门之源配置、镜像加速等常见操作

    ①采用镜像叠加构建首先拉取基础镜像centos,再在基础镜像上源码构建nginx镜像。
    docker pull centos
    docker run --name nginx -it centos /bin/bash
    在这里插入图片描述
    如果出现报错:WARNING: IPv4 forwarding is disabled. Networking will not work.
    此原因是ipv4转发没打开,编辑/usr/lib/sysctl.d/00-system.conf文件在文件末尾追加net.ipv4.ip_forward=1重新启动network即可

    在这里插入图片描述

    ②另开终端将本地物理机的nginx源码包上传到虚拟机中,再将其从虚拟机上传到docker容器中
    在这里插入图片描述
    返回容器中查看并解压nginx源码压缩包
    在这里插入图片描述
    ③源码安装nginx
    首先说下源码安装nginx的步骤:
    —安装nginx所需依赖环境gcc、gcc-c++、pcre-devel、zlib-devel、openssl-devel
    —编译安装nginx,进入nginx目录使用./configure && make && make install
    —启动nginx,进入启动目录/usr/local/nginx/sbin/nginx

    下面依次按照步骤来即可

    在这里插入图片描述
    此处会出现报错:bash: make: command not found
    说明此镜像中未安装make命令,使用yum安装即可
    在这里插入图片描述
    安装完成之后再次使用命令编译即可
    在这里插入图片描述
    启动nginx
    在这里插入图片描述
    访问80端口查看是否构建成功
    在这里插入图片描述

  2. 封装镜像,构建nginx专属镜像

    不要退出容器,重新开一个终端,commit为一个自己制作的nginx镜像
    (commit时直接提交为镜像仓库地址+镜像名也可以,下方tag使用)
    在这里插入图片描述

  3. 推送nginx镜像到harbor上

    构建和配置docker镜像仓库harbor的教程如下创建镜像并上传至docker仓库harbor
    别忘记修改daemon.json为harbor仓库地址
    在这里插入图片描述
    给nginx镜像tag标签为服务器上传地址及目录

    在这里插入图片描述

    登录harbor账号或者是docker-hub账号

    push上传此镜像到harbor上
    在这里插入图片描述
    登录harbor查看镜像
    成功推送在这里插入图片描述

  4. 拉取nginx镜像并创建容器使用docker pull拉取我们自己创建的镜像即可,镜像仓库记得修改为此harbor网址。大功告成了!
    注:可以在构建镜像时将不用的服务,make,gcc,gcc-c++,yum clean all

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!