docker之NGINX镜像构建

Nginx是一个高性能的Web和反向代理服务器,它具有很多非常优越的特性:
1、作为Web服务器。
2、作为负载均衡服务器。
3、作为邮件代理服务器。
4、安装及配置简单。
接下来我们介绍在docker构建nginx镜像:
Docker镜像构建分为两种方式:
一、手动构建
二、Dockerfile(自动构建)

一、Docker镜像手动构建实例:
基于centos镜像进行构建nginx镜像
#下载镜像
[[email protected] ~]# docker pull centos
[[email protected] ~]# docker pull nginx
[[email protected] ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/centos    latest              ff426288ea90        13 days ago         207.2 MB
docker.io/nginx     latest              3f8a4339aadd        3 weeks ago         108.5 MB
#先创建centos镜像
[[email protected] ~]# docker run --name nginxdocker -ti centos
[[email protected] /]# yum install -y wget
[[email protected] /]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
#安装nginx
[[email protected] /]# yum install -y nginx
[[email protected] /]# sed -i ‘3a daemon off;‘ /etc/nginx/nginx.conf
[[email protected] /]# exit
[[email protected] ~]# docker ps -a
CONTAINER ID        IMAGE                COMMAND                  CREATED             STATUS                      PORTS                NAMES
10859f0ffd78        centos               "/bin/bash"              7 minutes ago       Exited (0) 19 seconds ago                        nginxdocker
#构建镜像
[[email protected] ~]# docker commit -m "test Nginx" 10859f0ffd78 nginxdocker/nginxdocker:v1
sha256:616e9d624b9a1db8e23491db331228ca56dd60c04356da14ab6d7e4cf821d415
You have new mail in /var/spool/mail/root
[[email protected] ~]# docker images
REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
nginxdocker/nginxdocker   v1                  616e9d624b9a        10 seconds ago      383.9 MB
#启动容器
[[email protected] ~]# docker run --name nginxserver -d -p 82:80 nginxdocker/nginxdocker:v1 nginx
c2ded9ce8af76c3b4862ca54478d39429879c856a2751957c9287df077dfcf17
[[email protected] ~]# docker ps
CONTAINER ID        IMAGE                        COMMAND             CREATED             STATUS              PORTS                NAMES
c2ded9ce8af7        nginxdocker/nginxdocker:v1   "nginx"             21 seconds ago      Up 19 seconds       0.0.0.0:82->80/tcp   nginxserver
#测试
[[email protected] ~]# curl  -I 192.168.128.165:82
HTTP/1.1 200 OK
Server: nginx/1.12.2
Date: Mon, 22 Jan 2018 08:15:39 GMT
Content-Type: text/html
Content-Length: 3700
Last-Modified: Wed, 18 Oct 2017 08:08:18 GMT
Connection: keep-alive
ETag: "59e70bf2-e74"
Accept-Ranges: bytes

二、Docker镜像自动构建实例:
    Dockerfile是一个文本格式的配置文件,用户可以使用Dockerfile快速创建自定义的镜像。
    Dockerfile由一行行命令语句组成,#号注释。分为:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令。

#创建目录
[[email protected] ~]# mkdir /dokerfile
[[email protected] ~]# cd /dokerfile/
[[email protected] dokerfile]# mkdir nginx
[[email protected] dokerfile]# cd nginx/
#添加Dockerfile文件注意D大写
[[email protected] nginx]# vim Dockerfile
#This dockerfile uses the centos image
#VERSION 2 - EDITION 1
#Author:jianlaihe
#Command format:
# 指定基于的基础镜像
FROM centos

#维护者信息
MAINTAINER jianlaihe [email protected]

#镜像的操作指令
RUN yum install -y wget
RUN wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/re
po/epel-7.repo
RUN yum install -y nginx
RUN echo "daemon off;" >>/etc/nginx/nginx.conf
#添加文件需存在当前目录下
ADD index.html /usr/share/nginx/html/index.html
EXPOSE 80
#容器启动时执行命令
CMD /usr/sbin/nginx

[[email protected] nginx]# echo "hello docker" >index.html
#docker build命令构建镜像名为nginx版本v2
[[email protected] nginx]# docker build -t nginx:v2 .
Complete!
 ---> 5e37422db8b2
Removing intermediate container 87fa82c1173a
Step 6 : RUN echo "daemon off;" >>/etc/nginx/nginx.conf
 ---> Running in a03da9a96436
 ---> 236590c11b39
Removing intermediate container a03da9a96436
Step 7 : ADD index.html /usr/share/nginx/html/index.html
 ---> ac28fc354cad
Removing intermediate container 5c2d9944e6f3
Step 8 : EXPOSE 80
 ---> Running in 0b598a0680b8
 ---> d4addb2c20ba
Removing intermediate container 0b598a0680b8
Step 9 : CMD /usr/sbin/nginx
 ---> Running in d1feaede849f
 ---> 4905d9869aa7
Removing intermediate container d1feaede849f
Successfully built 4905d9869aa7
[[email protected] nginx]# docker images
REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
nginx                     v2                  4905d9869aa7        53 seconds ago      404.1 MB
#启动容器
[[email protected] nginx]# docker run --name testnginx -d -p 83:80 nginx:v2
b2cd72936465464bb8a88e9b3c5df0015241c7d17cb74062433ef79582c58908
#测试
[[email protected] nginx]# curl  192.168.128.165:83
hello docker

原文地址:https://www.cnblogs.com/Dev0ps/p/8330130.html

时间: 2024-11-10 08:19:55

docker之NGINX镜像构建的相关文章

Docker 制作Nginx镜像

参考文章:https://www.jianshu.com/p/dc4cd0547d1e 镜像的制作方式有两种,一种是下载别人的镜像之后再制作成自己的镜像,一种是从头开始制作自己的镜像 第一种,下载别人的镜像来修改. 安全起见下载官方的centos系统镜像,在该系统内安装nginx之后,在封装成镜像 下载centos系统镜像 docker pull centos 使用镜像启动容器并进入容器 docker run -it --name centos.nginx centos /bin/bash 安装

Docker中启动Nginx镜像,配置aspnetcore 网站代理

1.使用docker 下载nginx 镜像  docker pull nginx 2.启动nginx docker run --name nginx -p 80:80 -d nginx 这样就简单的把nginx启动了,但是我们想要改变配置文件nginx.conf ,进入容器,命令: docker exec -it nginx bash nginx.conf配置文件在 /etc/nginx/  下面,但是你使用vim nginx.conf 或者vi nginx.conf 会发现vi或者vim命令没

自己手动构建docker nginx镜像

docker run --name nginx-man -it centos 创建一个centosyum install -y wget gcc gcc-c++ make openssl-devel 构建环境wget http://nginx.org/download/nginx-1.14.0.tar.gz 获取nginx安装包wget https://ftp.pcre.org/pub/pcre/pcre2-10.23.tar.gz --no-check-certificate 获取pcreta

Docker镜像构建

一.docker镜像构建 1.环境准备 环境准备 IP 主机名 操作系统 192.168.56.11 linux-node1 centos7 注意:我这里使用的是centos7,如果是使用centos5或者centos6,需要升级操作系统内核,否则Docker的许多新功能都无法使用 2.构建方式 - 手动构建 - 自动构建,(通过Dockerfile方式) 3.删除原有镜像 为了防止干扰,将以前创建的容器全部删掉. 切记 切记 切记:生产环境慎用.  否则真的会发生  从删除到跑路... 获取容

8.Docker之使用dockerfile创建nginx镜像

一.前言 看了很多人的dockerfile,都是长篇大论,解释的又很少,对于初学者来说根本不知道指令的意思,哪怕知道指令的意思,也不知道指令后面配置的一大串东西来自于哪里,而这一大串又无需去记忆,例如: 开头的RUN指令都能根据dockerfile的指令说明可以知道该指令是干嘛用的,但是后面这一串这么长的东西又是来自于哪里? 所以在编写dockerfile之前,你必须懂的nginx(该文章是基于dockerfile创建nginx镜像)在linux上的安装流程,否则,需要安装什么依赖等都不知道,就

Docker镜像构建的优化总结

Docker镜像构建的优化总结 随着我们对docker镜像的持续使用,在此过程中如果不加以注意并且优化,镜像的体积会越来越多.很多时候我们在使用docker部署应用时,会发现镜像的体积至少有1G以上.镜像体积的增大,不单单会增加磁盘资源与网络资源的开销,也会影响应用的部署效率,使得应用的部署时间会越来越长.因此我们需要减少部署镜像的体积以加快部署效率,降低资源的开销.而对于镜像的优化,可以通过对dockerfile的优化来实现. 一.镜像最小化 1.选择最精简的基础镜像 选择体积最小的基础镜像可

docker 镜像构建上下文理解

原文 写得贼好,特别鸣谢,哈哈 如果注意,会看到 docker build 命令最后有一个 . . . 表示当前目录,而 Dockerfile就在当前目录,因此不少初学者以为这个路径是在指定 Dockerfile 所在路径,这么理解其实是不准确的.如果对应上面的命令格式,你可能会发现,这是在指定上下文路径.那么什么是上下文呢? ??首先我们要理解 docker build 的工作原理.Docker 在运行时分为 Docker 引擎(也就是服务端守护进程)和客户端工具.Docker 的引擎提供了一

Docker镜像构建上下文(Context)

镜像构建上下文(Context) Dicker在构建镜像时,如果注意,会看到 docker build 命令最后有一个 ... 表示当前目录,而 Dockerfile 就在当前目录,因此不少初学者以为这个路径是在指定 Dockerfile 所在路径,这么理解其实是不准确的.如果对应上面的命令格式,你可能会发现,这是在指定上下文路径.那么什么是上下文呢? 首先我们要理解 docker build 的工作原理.Docker 在运行时分为 Docker 引擎(也就是服务端守护进程)和客户端工具.Doc

dockerfile构建nginx镜像

Dockerfile是一个文本格式的配置文件,用户可以使用dockerfile来快速创建自定义的镜像. Dockerfile指令说明 分类 指令 说明 配置指令 ARG 定义创建镜像过程中使用的变量 配置指令 FROM 指定镜像创建的基础镜像 配置指令 LABEL 为生成的镜像添加元数据标签信息 配置指令 EXPOSE 声明镜像内服务监听的端口 配置指令 ENV 指定环境变量 配置指令 ENTRYPOINT 指定镜像的默认入口指令 配置指令 VOLUME 创建一个数据卷挂载点 配置指令 USRE