创建支持nginx服务的docker镜像

简介:

环境:

1
2
3
4
5
[root@linux-node1 ~] # cat /etc/redhat-release 
CentOS Linux release 7.2.1511 (Core) 
[root@linux-node1 ~] # uname -a
Linux linux-node1 3.10.0-327.el7.x86_64  #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
[root@linux-node1 ~] #


创建目录并下载对应的软件包:

1
2
3
4
5
6
7
[root@linux-node1 ~] #mkdir -p nginx_centos
[root@linux-node1 ~] #
[root@linux-node1 nginx_centos] # ll
total 2864
-rw-r--r-- 1 root root  864430 Aug  6 21:12 nginx-1.9.3. tar .gz
-rw-r--r-- 1 root root 2058349 Aug  6 21:39 pcre-8.37. tar .gz
[root@linux-node1 nginx_centos] #

编写Dockerfile文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[root@linux-node1 nginx_centos] # vim Dockerfile 
#Version 1.0
#Author: Wilson
#Base images
FROM centos
#MAINTAINER
MAINTAINER Wilson
#ADD
ADD pcre-8.37. tar .gz  /usr/local/src
ADD nginx-1.9.3. tar .gz  /usr/local/src
#RUN
RUN   yum -y  install  wget gcc gcc-c++  make  openssl openssl-devel
RUN    useradd  -s  /sbin/nologin  -M www
#WORKDIR
WORKDIR    /usr/local/src/nginx-1 .9.3
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" ]
[root@linux-node1 nginx_centos] #


创建镜像并查看:

1
2
3
4
5
6
7
8
9
[root@linux-node1 nginx_centos] # docker build -t ningx-file:v01 ./
[root@linux-node1 nginx_centos] #
[root@linux-node1 nginx_centos] # docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ningx- file           v01                 460b5af495c4        16 minutes ago      531.9 MB
nginx /ningx          1.9.3v02            097c98e3cb2b        About an hour ago   534.6 MB
nginx               1.9.3               d2cfb9ed3f2b        6 hours ago         534.6 MB
docker.io /centos     latest              970633036444        8 days ago          196.7 MB
[root@linux-node1 nginx_centos] #


利用创建的镜像启动一个容器webserver002

1
2
3
4
5
[root@linux-node1 nginx_centos] #docker run -d -p 9000:80 --name webserver002 460b5af495c4
[root@linux-node1 nginx_centos] #
[root@linux-node1 nginx_centos] # docker ps -a|grep webserver002
5ab1e96830c1        460b5af495c4         "nginx"                   9 minutes ago       Up 9 minutes        0.0.0.0:9000->80 /tcp    webserver002
[root@linux-node1 nginx_centos]

说明:-p将宿主机本地端口与容器内部端口进行指定映射,这里是宿主机本地9000端口与容器内部80端口映射

验证是否能通过9000端口访问:截图如下:

wKioL1emq8uBKogIAAB7jAA91Kk059.png-wh_50


至此,支持nginx的服务的docker镜像创建完成








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



相关文章
|
12天前
|
监控 Linux 开发者
Docker服务systemd配置文件详解
Docker服务systemd配置文件详解
22 0
|
5天前
|
应用服务中间件 nginx Docker
docker安装nginx
`docker search`找镜像,`pull`下载,后台 `-d` 运行容器,命名 `--name`,映射端口 `-p`。本机测试,确保服务器安全组开放端口,公网通过`http://ip:port`访问。用`docker stop id`停止容器。[查看详情](https://blog.csdn.net/javayoungcoolboy/article/details/134976510)
|
5天前
|
应用服务中间件 nginx Docker
Docker中报错 Error response from daemon: Conflict. The container name “/nginx01“ is already in use
在尝试运行 `docker run -d --name nginx01 -p 3344:80 nginx` 时遇到错误。问题源于已有名为 nginx01 的容器未正确终止,造成命名冲突。解决方法:首先使用 `docker ps -a` 查看所有容器,然后删除现有 nginx01 容器,执行 `docker rm <container_id>`(替换 `<container_id>` 为实际容器ID),最后再运行 `docker run` 命令即可。
|
5天前
|
存储 安全 开发者
【Docker 专栏】Docker 与云存储服务的集成
【5月更文挑战第9天】在数字化时代,Docker和云存储服务的结合为企业和开发者提供了强大工具。Docker的高效性、可移植性和隔离性,加上云存储的扩展性、高可靠性和高可用性,通过集成可以实现数据持久化、便捷部署和资源优化。常见的集成包括AWS S3、Azure Blob Storage和Google Cloud Storage。集成时需注意安全、性能和兼容性问题,未来集成将更加紧密和智能化,助力企业创造更大价值。
【Docker 专栏】Docker 与云存储服务的集成
|
5天前
|
机器学习/深度学习 监控 Kubernetes
【Docker 专栏】Docker 容器内服务的自动扩展与缩容
【5月更文挑战第9天】本文探讨了Docker容器服务的自动扩展与缩容原理及实践,强调其在动态业务环境中的重要性。通过选择监控指标(如CPU使用率)、设定触发条件和制定扩展策略,实现资源的动态调整。方法包括云平台集成和使用Kubernetes等框架。实践中,电商平台和实时数据处理系统受益于此技术。注意点涉及监控数据准确性、扩展速度和资源分配。未来,智能算法将提升扩展缩容的效率和准确性,成为关键技术支持。
【Docker 专栏】Docker 容器内服务的自动扩展与缩容
|
6天前
|
存储 关系型数据库 Linux
CentOS如何使用Docker部署Plik服务并实现公网访问本地设备上传下载文件
CentOS如何使用Docker部署Plik服务并实现公网访问本地设备上传下载文件
28 4
|
14天前
|
负载均衡 网络协议 应用服务中间件
【亮剑】在Linux中构建高可用性和高性能网络服务的负载均衡工具HAProxy、Nginx和Keepalived。
【4月更文挑战第30天】本文介绍了在Linux中构建高可用性和高性能网络服务的负载均衡工具HAProxy、Nginx和Keepalived。HAProxy是一个高性能的开源TCP和HTTP负载均衡器,适合处理大量并发连接;Nginx是一个多功能Web服务器和反向代理,支持HTTP、HTTPS和TCP负载均衡,同时提供缓存和SSL功能;Keepalived用于监控和故障切换,通过VRRP实现IP热备份,保证服务连续性。文中详细阐述了如何配置这三个工具实现负载均衡,包括安装、配置文件修改和启动服务,为构建可靠的负载均衡系统提供了指导。
|
14天前
|
关系型数据库 MySQL 应用服务中间件
centos7在线安装jdk1.8+tomcat+mysql8+nginx+docker
现在,你已经成功在CentOS 7上安装了JDK 1.8、Tomcat、MySQL 8、Nginx和Docker。你可以根据需要配置和使用这些服务。请注意,安装和配置这些服务的详细设置取决于你的具体需求。
53 2
|
15天前
|
机器学习/深度学习 人工智能 分布式计算
人工智能平台PAI 操作报错合集之在本地构建easyrec docker镜像时遇到了无法连接docker服务如何解决
阿里云人工智能平台PAI (Platform for Artificial Intelligence) 是阿里云推出的一套全面、易用的机器学习和深度学习平台,旨在帮助企业、开发者和数据科学家快速构建、训练、部署和管理人工智能模型。在使用阿里云人工智能平台PAI进行操作时,可能会遇到各种类型的错误。以下列举了一些常见的报错情况及其可能的原因和解决方法。