利用Dockerfile创建Nginx镜像

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/carson0408/article/details/88915899

        Nginx是一个功能比较强大并且性能较高的web和反向代理服务器,与Apache作为web服务器相比,Ngnix使用更少的资源,支持更多的并发连接,体现更高的效率,一个Nginx实例能够轻松支持高达50000个高并发连接数的响应。本文主要通过Dockerfile在Ubuntu环境下创建Ngnix镜像。首先本文使用的基础镜像是Apache服务镜像的创建一文中选择的基础镜像sshd:ubuntu14.

1.创建总工作目录

mkdir nginx_service && cd nginx_service
touch Dockerfile run.sh

    创建authorized_keys并将公钥复制过来

cat ~/.ssh/id_rsa.pub >authorized_keys
cat authorized_keys

2.编写Dockerfile和run.sh

FROM sshd:ubuntu14

MAINTAINER carson [email protected]

#安装nginx,设置nginx以非daemon启动
RUN apt-get -y install nginx && rm -rf /var/lib/apt/lists/* && \
echo "\ndaemon off;" >> /etc/nginx/nginx.conf && \
chown -R www-data:www-data /var/lib/nginx

#注意这里要梗概系统的时区设置,因为在web应用中经常会用到时区这个系统变量
RUN echo "Asia/Shanghai" > /etc/timezone && dpkg-reconfigure -f noninteractive tzdata

#添加脚本,并设置权限,这会覆盖之前放在这个位置的脚本
ADD run.sh /run.sh
RUN chmod 755 /*.sh

#定义可以被挂载的目录,分别是虚拟主机的挂载目录、证书目录、配置目录和日志目录
VOLUME ["/etc/nginx/sites-enabled","/etc/nginx/certs","/etc/nginx/conf.d","/var/log/nginx"]



EXPOSE 80
EXPOSE 443

#定义工作目录
WORKDIR /etc/nginx

#定义输出命令
CMD ["/run.sh"]

run.sh

#!/bin/bash
/usr/sbin/sshd &
/usr/sbin/nginx
~               

 3.创建镜像

sudo docker build -t nginx:service .

4.测试

后台启动容器

sudo docker run -d -p 49191:22 -p 49192:80 -p 49193:443 nginx:service

本地测试 

curl 127.0.0.1:49192

 测试结果:

猜你喜欢

转载自blog.csdn.net/carson0408/article/details/88915899
今日推荐