应用Dockerfile部署我的项目
以Nginx部署我的项目为例
Docker装置及Docker公有仓库部署流程
Harbor在arm架构下亲测编译胜利
Linux装置Harbor亲测胜利功
制作根底镜像
以公有仓库192.168.1.182:5000/centos为根底镜像,构建一个nginx根底镜像,其余环境都依赖这个根底镜像做出相应镜像
留神:dockerfile外面的装置命令尽量在一行实现,最初删除不必要的组件,以放大体积,放慢启动速度
cat Dockerfile-base
############################################# version : nginx-withssl-v1# desc : 装置nginx-1.10.2.tar.gz############################################# 设置继承镜像FROM 192.168.1.182:5000/centos# 上面是一些创建者的根本信息MAINTAINER liang "liang@xxx.com"# 设置环境变量ENV NGINX_VERSION 1.10.2 20220224RUN mkdir -p /data/apps/nginx-main && mkdir -p /data/logs/nginx-main && mkdir -p /data/temps/nginx-mainRUN yum -y install make wget zlib zlib-devel gcc-c++ libtool openssl openssl-devel && \ mkdir -p /data/software && \ cd /data/software && \ wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz && \ tar zxvf pcre-8.35.tar.gz && \ cd pcre-8.35 && \ ./configure && \ make && make install && \ pcre-config --version && \ wget -O /data/software/nginx-1.10.2.tar.gz http://nginx.org/download/nginx-1.10.2.tar.gz && \ cd /data/software && \ tar -zxvf nginx-1.10.2.tar.gz && \ cd /data/software/nginx-1.10.2 && \ ./configure --prefix=/data/apps/nginx-main \ --pid-path=/data/logs/nginx-main/nginx.pid \ --lock-path=/data/apps/nginx-main/nginx.lock \ --error-log-path=/data/logs/nginx-main/error.log \ --http-log-path=/data/logs/nginx-main/access.log \ --http-client-body-temp-path=/data/temps/nginx-main/client_body_temp \ --http-proxy-temp-path=/data/temps/nginx-main/proxy_temp \ --http-fastcgi-temp-path=/data/temps/nginx-main/fastcgi_temp \ --http-uwsgi-temp-path=/data/temps/nginx-main/uwsgi_temp \ --http-scgi-temp-path=/data/temps/nginx-main/scgi_temp \ --with-http_stub_status_module \ --with-http_ssl_module \ --with-http_realip_module \ --with-pcre=/data/software/pcre-8.35 && \ make && \ make install && \ rm -rf /pcre-8.35.tar.gz /nginx-1.10.2.tar.gz /pcre-8.35 /nginx-1.10.2 && \ yum -y remove wget git gcc-c++ libtool openssl-devel zlib-devel && \ yum clean allEXPOSE 443 80
创立nginxbase 镜像
$ docker build -f Dockerfile-base -t 192.168.1.182:5000/nginx-main-base .$ docker push 192.168.1.182:5000/nginx-main-base
比方开发环境或者测试环境须要搭建nginx, 以nginx-main-base为根底镜像
cat Dockerfile-debug
FROM 192.168.1.182:5000/nginx-main-baseMAINTAINER liang "liang@xxx.com" 2022030614ADD /conf/nginx-debug.conf /data/apps/nginx-main/conf/nginx.confADD /abcdchat.crt /data/apps/nginx-main/abcdchat.crtADD /abcdchat.key /data/apps/nginx-main/abcdchat.keyENTRYPOINT ["/data/apps/nginx-main/sbin/nginx"]
创立nginx-debug镜像
$ docker build -f Dockerfile-debug -t 192.168.1.182:5000/nginx-main-debug .$ docker push 192.168.1.182:5000/nginx-main-debug
运行nginx容器
docker rm -f nginx-main-debug-containerdocker run -d -p 443:443 -p 8181:80 --name="nginx-main-debug-container" -v `pwd`/logs:/data/logs/nginx-main -v `pwd`/datas:/data/datas/nginx 192.168.1.182:5000/nginx-main-debug