使用Dockerfile部署项目
以Nginx部署项目为例
制作基础镜像
以私有仓库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 20220224
RUN mkdir -p /data/apps/nginx-main && mkdir -p /data/logs/nginx-main && mkdir -p /data/temps/nginx-main
RUN 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 all
EXPOSE 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-base
MAINTAINER liang "liang@xxx.com" 2022030614
ADD /conf/nginx-debug.conf /data/apps/nginx-main/conf/nginx.conf
ADD /abcdchat.crt /data/apps/nginx-main/abcdchat.crt
ADD /abcdchat.key /data/apps/nginx-main/abcdchat.key
ENTRYPOINT ["/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-container
docker 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
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。