开发,测试环境不同会引起很多问题。用docker创建适用开发场景的镜像,将镜像推送到docker仓库中,随取随用,便捷高效。
构建容器有两种方式,一种是镜像的叠加,一种是基于容器构建镜像,常用的构建方式为基于镜像叠加构建。本文将讲述如何源码构建镜像、将nginx镜像推送到docker仓库harbor上、在本地拉取nginx镜像并创建容器。
-
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端口查看是否构建成功 -
封装镜像,构建nginx专属镜像
不要退出容器,重新开一个终端,commit为一个自己制作的nginx镜像
(commit时直接提交为镜像仓库地址+镜像名也可以,下方tag使用) -
推送nginx镜像到harbor上
构建和配置docker镜像仓库harbor的教程如下创建镜像并上传至docker仓库harbor
别忘记修改daemon.json为harbor仓库地址
给nginx镜像tag标签为服务器上传地址及目录登录harbor账号或者是docker-hub账号
push上传此镜像到harbor上
登录harbor查看镜像
成功推送 -
拉取nginx镜像并创建容器使用docker pull拉取我们自己创建的镜像即可,镜像仓库记得修改为此harbor网址。大功告成了!
注:可以在构建镜像时将不用的服务,make,gcc,gcc-c++,yum clean all
来源:CSDN
作者:米粥粥
链接:https://blog.csdn.net/qq_41545647/article/details/101671019