环境准备:
(1)保证拥有centos基础镜像
docker images | grep centos
(2)服务器保证可以连接外网
1.创建工作目录
mkdir nginx
cd nginx
2.在工作目录中创建并编写Dockerfile文件
vim dockerfile
#定义基础镜像
FROM centos:7
#维护者信息(可缺省)
MAINTAINER devopsxjh
#添加备注信息(可缺省)
LABEL user="devopsxjh"\
gronp="CSDN"
#更改时区文件为亚洲上海并yum备份仓库源
RUN <<END bash
#更改时区
rm -rf /etc/localtime&&ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
mkdir /etc/yum.repos.d/bak ; mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
END
#设置阿里云公网yum源并安装nginx相关依赖(服务器需要联网)
ADD https://mirrors.aliyun.com/repo/Centos-7.repo /etc/yum.repos.d/CentOS-Base.repo
RUN yum clean all ; yum -y install wget proc-devel net-tools gcc zlib zlib-devel make --skip-broken ; rm -rf /var/cache/yum/*
#上传nginx源码包并自动解压至指定目录
ADD nginx-1.26.2.tar.gz /usr/src/
#切换目录
WORKDIR /usr/src/nginx-1.26.2
#编译安装
RUN ./configure --prefix=/usr/local/nginx --without-http_rewrite_module && make && make install
#开启网站常用端口
EXPOSE 80 443
#切换至nginx目录
WORKDIR /root/nginx
#添加服务启动脚本并设置权限
RUN <<END bash
cat <<EOF>> /run.sh
#!/bin/bash
/usr/local/nginx/sbin/nginx -g "daemon off;"
EOF
chmod 755 /run.sh
END
#启动容器时执行脚本
CMD ["/run.sh"]
3.上传nginx源码文件
4.使用Dockerfile生成镜像
命令语法:
docker build [选项] 路径
docker build -t nginx:t1 .
5.使用新镜像运行容器测试
docker run -d -p 8080:80 --name nginx nginx:t1
#查看容器是否启动
docker ps