本文目的如何使用docker构建nginx镜像,使用操作系统centos7,nginx 1.15.2
1.安装基础镜像
1.安装基础镜像centos,如果本地没有镜像,会从仓库获取
docker pull centos
2.nginx安装配置
在Linux系统中,原始nginx配置所需如下步骤
1 安装 nginx需要工具
yum -y install gcc make pcre-devel zlib-devel tar zlib
2 下载nginx
wget http://nginx.org/download/nginx-1.15.2.tar.gz
3 nginx解压/nginx目录
tar -zxvf nginx-1.15.2.tar.gz
4 切换到/nginx/nginx-1.15.2
执行./configure
make
make install 进行安装
5 切换到/usr/local/nginx/sbin
执行 ./nginx 启动nginx
转换dockerfile配置对应下列命令,创建dockerfile文件并放入nginx目录
#配置nginx Dcokerfile
FROM centos
RUN yum -y install gcc make pcre-devel zlib-devel tar zlib
WORKDIR /nginx
#由于外网下载较慢,提前下载好了nginx,省略下载步骤
COPY nginx-1.15.2.tar.gz /nginx
RUN tar -zxvf nginx-1.15.2.tar.gz
RUN cd nginx-1.15.2 && ./configure && make && make install
EXPOSE 80
CMD /bin/bash
3.运行nginx
1.构建nginx镜像
docker build -t nginxdemo .
执行完成后查看镜像是否构建成功:
image.png2.运行镜像
docker run -d -P nginxdemo
如下图已运行成功,但显示nginx还未启动
image.png
上图中是因为容器和服务还未启动,只有两者都启动才可以,输入下面命令启动:
#使用后台交互操作启动
docker run -itd -P nginxdemo
再次查看已成功启动,由于运行时未指定端口,随机暴露了32770端口
image.png访问发现没有访问成功
image.png没有成功是因为nginx未启动,需要进入docker内部启动nginx
#进入docker容器内部
docker exec -it c376211dbdae /bin/bash
#切换到Linux默认安装目录
cd /usr/local/nginx/sbin
#运行nginx
./nginx
再次访问页面成功
(ps:这里端口号变为32772是因为32770启动nginx后也没访问成功,开始以为是nginx安装问题,重新搭建后发现是公司网络的限制,切换网络后成功访问o(╥﹏╥)o)
网友评论