利用Dockerfile构建一个nginx容器

简介:

1.从远程仓库中pull centos镜像

docker pull centos

2.查询镜像

docker images

1.jpg

3.下载nginx和pcre到本地目录下

2.jpg

4.编辑Dockerfile文件

#Nginx dockerfile

#Version 1.0

#Author: kehaojian

#Base images

FROM centos

#MAINTAINER 维护人

MAINTAINER kehaojian

#ADD 添加本地文件到镜像

ADD pcre-8.37.tar.gz /usr/local/src

ADD nginx-1.9.3.tar.gz /usr/local/src

#RUN 在镜像中执行命令

RUN yum install -y wget gcc_c++ make openssl-devel

RUN useradd -s /sbin/nologin -M www

#WORKDIR 镜像中切换到目录

WORKDIR /usr/local/src/nginx-1.9.3

RUN yum install -y gcc gcc-c++

RUN ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-http_stub_status_module --with-pcre=/usr/local/src/pcre-8.37 && make && make install

RUN echo "daemon off;">>/usr/local/nginx/conf/nginx.conf

#配置环境变量

ENV PATH /usr/local/nginx/sbin:$PATH

EXPOSE 80

#命令

CMD  ["nginx"]

5.执行构造命令  docker build -t nginx-docker:v1 .

[root@HA2 src]# docker build -t nginx-docker:v1 .

Sending build context to Docker daemon 8.234 MB

Step 1 : FROM centos

---> 3fa822599e10

Step 2 : MAINTAINER kehaojian

---> Using cache

---> 7a13a2573c2c

Step 3 : ADD pcre-8.37.tar.gz /usr/local/src

---> Using cache

---> 27f018c7c6c2

Step 4 : ADD nginx-1.9.3.tar.gz /usr/local/src

---> Using cache

---> 0ac134999174

Step 5 : RUN yum install -y wget gcc_c++ make openssl-devel

---> Using cache

---> 2caeaffce308

Step 6 : RUN useradd -s /sbin/nologin -M www

---> Using cache

---> 50fad5999287

Step 7 : WORKDIR /usr/local/src/nginx-1.9.3

---> Using cache

---> c223ad0c0e56

Step 8 : RUN yum install -y gcc gcc-c++

---> Using cache

---> 535006fabee5

Step 9 : RUN ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-http_stub_status_module --with-pcre=/usr/local/src/pcre-8.37 && make && make install

---> Using cache

---> 2c8bfa5d7162

Step 10 : RUN echo "daemon off;">>/usr/local/nginx/conf/nginx.conf

---> Using cache

---> 3ab469fa6de1

Step 11 : ENV PATH /usr/local/nginx/sbin:$PATH

---> Using cache

---> 399e3d091604

Step 12 : EXPOSE 80

---> Using cache

---> 0e84b1ddfd98

Step 13 : CMD nginx

---> Using cache

---> 20c4d11561d3

Successfully built 20c4d11561d3

6.查看镜像 docker images

3.jpg

7.启动容器 docker run -it -d -p 8888:80 --name nginx8888 20c4d11561d3

4.jpg

8.查看容器 docker ps -l

5.jpg

9.访问http://ha2:8888

6.jpg



本文转自gauyanm 51CTO博客,原文链接:http://blog.51cto.com/gauyanm/2055021,如需转载请自行联系原作者

相关文章
|
应用服务中间件 nginx Docker
Docker镜像-基于DockerFile制作编译版nginx镜像
这篇文章介绍了如何基于Dockerfile制作一个编译版的nginx镜像,并提供了详细的步骤和命令。
1905 17
Docker镜像-基于DockerFile制作编译版nginx镜像
|
缓存 JavaScript 前端开发
Dockerfile全面指南:从基础到进阶,掌握容器化构建的核心工具
Dockerfile 是容器化开发中的关键工具。理解并掌握其使用方式,不仅能提高开发效率,还能让你的应用具备更强的可移植性和灵活性。通过优化配置和合理安排构建步骤,可以打造更轻量、更高效的容器镜像。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
负载均衡 应用服务中间件 nginx
基于Nginx和Consul构建自动发现的Docker服务架构——非常之详细
通过使用Nginx和Consul构建自动发现的Docker服务架构,可以显著提高服务的可用性、扩展性和管理效率。Consul实现了服务的自动注册与发现,而Nginx则通过动态配置实现了高效的反向代理与负载均衡。这种架构非常适合需要高可用性和弹性扩展的分布式系统。
328 4
|
应用服务中间件 Linux nginx
Docker镜像-基于DockerFile制作yum版nginx镜像
本文介绍了如何使用Dockerfile制作一个基于CentOS 7.6.1810的yum版nginx镜像,并提供了详细的步骤和命令。
563 20
|
负载均衡 应用服务中间件 nginx
基于Nginx和Consul构建自动发现的Docker服务架构——非常之详细
通过使用Nginx和Consul构建自动发现的Docker服务架构,可以显著提高服务的可用性、扩展性和管理效率。Consul实现了服务的自动注册与发现,而Nginx则通过动态配置实现了高效的反向代理与负载均衡。这种架构非常适合需要高可用性和弹性扩展的分布式系统。
626 3
|
消息中间件 NoSQL Kafka
Flink-10 Flink Java 3分钟上手 Docker容器化部署 JobManager TaskManager Kafka Redis Dockerfile docker-compose
Flink-10 Flink Java 3分钟上手 Docker容器化部署 JobManager TaskManager Kafka Redis Dockerfile docker-compose
702 4
|
监控 应用服务中间件 网络安全
部署Django应用:使用Gunicorn和Nginx构建高效的生产环境
部署Django应用:使用Gunicorn和Nginx构建高效的生产环境
1523 0
|
监控 应用服务中间件 nginx
详细解释容器以及虚拟机centos7.9容器化部署基础服务(容器化部署nginx)
容器是一种轻量级、可移植的软件打包和隔离技术,将应用程序及其依赖项打包,确保在任何环境中一致运行。容器共享主机操作系统内核,相比虚拟机更高效、轻量,具有快速启动和高资源利用率的特点。容器的关键技术包括命名空间(如 PID、NET 等)、控制组(cgroups)和联合文件系统(UnionFS)。使用容器可以提高开发和部署效率,简化管理,确保环境一致性。例如,在 CentOS 7.9 上部署 Nginx 时,可以通过 Docker 下载和运行 `nginx:1.20` 镜像,并通过端口映射使外部请求访问 Nginx 服务。此外,还可以将测试页面复制到容器中,进一步验证容器的功能。
639 0