docker构建nginx镜像

本文目的如何使用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.png

2.运行镜像

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)

image.png

你可能感兴趣的:(docker构建nginx镜像)