1.Dockerfile-nginx安装配置
1.编译安装脚本
mkdir /data/docker/dockerfile/nginx
cd /data/docker/dockerfile/nginx
拷贝nginx.1.24.0.tar.gz 到这个目录下
vim Dockerfile,注意文件名必须是这个:
FROM centos:latest1 MAINTAINER this is nginx dockerfile # 安装软件 RUN yum -y install make zlib zlib-devel pcre pcre-devel gcc openssl openssl-devel # 创建用户 RUN groupadd www RUN useradd -g www www -s /bin/false # 定义Nginx版本号 ENV VERSION 1.24.0 # 下载并解压文件 RUN mkdir -p /usr/local/src/ ADD nginx-1.24.0.tar.gz /usr/local/src/ RUN ls -l /usr/local/src/ #在执行 <源文件> 为 tar 压缩文件的话,压缩格式为 gzip、bzip2 以及 xz 的情况下,会自动复制并解压到 <目标路径>。 #RUN tar -zxvf /usr/local/src/nginx-1.24.0.tar.gz -C /usr/local/src/ #RUN tar -zxvf /usr/local/src/nginx-1.24.0.tar.gz -C /usr/local/src/ # 创建安装目录 ENV NGINX_HOME /usr/local/nginx RUN mkdir -p $NGINX_HOME RUN chown -R www:www $NGINX_HOME # 进入解压目录 WORKDIR /usr/local/src/nginx-$VERSION # 编译安装 RUN ./configure \ --user=www \ --group=www \ --prefix=$NGINX_HOME \ --with-http_ssl_module \ --with-http_realip_module \ --with-http_gzip_static_module \ --with-http_stub_status_module RUN make RUN make install # 备份Nginx的配置文件 RUN cp $NGINX_HOME/conf/nginx.conf $NGINX_HOME/conf/nginx.conf.default # 设置环境变量 ENV PATH $PATH:$NGINX_HOME/sbin # 创建WebApp目录 #ENV WEB_APP /usr/share/nginx/html #RUN mkdir -p $WEB_APP # 设置默认工作目录 #WORKDIR $WEB_APP # 暴露端口 EXPOSE 80 EXPOSE 443 # 清理压缩包与解压文件 RUN rm -rf /usr/local/src/nginx* CMD $NGINX_HOME/sbin/nginx -g 'daemon off;' -c $NGINX_HOME/conf/nginx.conf
2.编译dockerfile制作镜像
docker build -t nginx:1.24.0 .
构建的时候可能会报错,报错信息不全面,可以 >build.log 2>&1 ,从日志中查看相信报错。
3.创建挂载卷
docker volume create nginx1.24volume
docker inspect nginx1.24volume [ { "CreatedAt": "2024-02-05T09:37:53+08:00", "Driver": "local", "Labels": null, "Mountpoint": "/var/lib/docker/volumes/nginx1.24volume/_data", "Name": "nginx1.24volume", "Options": null, "Scope": "local" } ]
在容器卷下创建html文件
[root@rhel1 _data]# netstat -anpl | grep 8090 [root@rhel1 _data]# cd /var/lib/docker/volumes/nginx1.24volume/_data [root@rhel1 _data]# ll 总用量 0 [root@rhel1 _data]# echo 'im a nginx1.24 nginx ...' >index.html [root@rhel1 _data]#
4.创建容器
docker run -p 8080:80 --name nginxStatic -d -v nginx1.24volume:/usr/local/nginx/html/ nginx:1.24.0
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cfe7e1608059 nginx:1.24.0 "/bin/sh -c '$NGINX_…" 30 seconds ago Up 29 seconds 443/tcp, 0.0.0.0:8080->80/tcp, :::8080->80/tcp nginxStatic
[root@rhel1 nginx]#