Docker file 搭建 Nginx镜像(手把手教学)

一. 在企业中的镜像分类

基础镜像:

  • 基础镜像是运行项目的基础环境,因为是基础服务,所以相对简易一些
  • 如:Nginx,Tomcat,PHP

项目镜像:

  • 项目镜像就是放在线上进行运行的,是基于基础镜像之上 在进行构成的。
  • 简单理解,就是把项目放到了 Nginx基础镜像里

二. 构建Nginx基础镜像

# 首先要给他一个

vim Dockerfile-nginx

然后在里面配置这些(这是写好的,直接C/V就可以了):

FROM centos:7
MAINTAINER www.ctnrs.com
RUN yum install -y gcc gcc-c++ make \
    openssl-devel pcre-devel gd-devel \
    iproute net-tools telnet wget curl && \
    yum clean all && \
    rm -rf /var/cache/yum/*
RUN wget http://nginx.org/download/nginx-1.15.5.tar.gz && \
    tar zxf nginx-1.15.5.tar.gz && \
    cd nginx-1.15.5 && \
    ./configure --prefix=/usr/local/nginx \
    --with-http_ssl_module \
    --with-http_stub_status_module && \
    make -j 4 && make install && \
    rm -rf /usr/local/nginx/html/* && \
    echo "ok" >> /usr/local/nginx/html/status.html && \
    cd / && rm -rf nginx-1.12.2* && \
    ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

ENV PATH $PATH:/usr/local/nginx/sbin
#COPY nginx.conf /usr/local/nginx/conf/nginx.conf
WORKDIR /usr/local/nginx
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

接下来 :build 生成本地镜像

docker build -t nginx:v1 -f Dockerfile-nginx .    
# 使用 Dockerfile-nginx 文件构建一个基础镜像 nginx:v1

-t nginx:v1                           # 指定版本tag=v1

-f Dockerfile-nginx                   # 指定dockerfile的名称

.                                      # 指定上下文(比如配置文件在那个位置等)

docker images            				               # 查看 nginx:v1 镜像是否创建成功

docker run -d --name nginx01 -p 88:80 nginx:v1       # 使用 nginx:v1 镜像创建一个容器 nginx01

http://你的IP/status.html                    # 测试是否可以访问容器nginx01的web服务
# 浏览器显示 ok 就没问题了

可以看到一堆文件在下载,这就是在生成本地的镜像了

在这里插入图片描述

下载好之后 查看(v1就是我们下载的):

在这里插入图片描述

然后进行下一步:

# 生成文件页面展示
touch index.html
# 编辑里面的内容
vim index.html
# 在里面写入
longzuishuai
# 新创建本地镜像 并写入内容,指定刚才的 index.html文件
vim Dockerfile
FROM nginx:v1
COPY index.html /usr/local/nginx/html   # 需要在当前目录中创建index.html文件
docker build -t nginx:v2 -f Dockerfile .       # 使用Dockerfile创建一个项目镜像 nginx:v2

docker run -d --name nginx02 -p 89:80 nginx:v2    # 使用 nginx:v2 创建一个容器 nginx02

http://你的IP/                          # 测试访问 容器 nginx:v2中的nginx服务

浏览器就会显示: longzuishuai

dockerfile的作用是从无到有的构建镜像。它包含安装运行所需的环境、程序代码等。这个创建过程就是使用 dockerfile 来完成的。Dockerfile - 为 docker build 命令准备的,用于建立一个独立的 image ,在 docker-compose 里也可以用来实时 build
docker-compose.yml - 为 docker-compose 准备的脚本,可以同时管理多个 container ,包括他们之间的关系、用官方 image 还是自己 build 、各种网络端口定义、储存空间定义等

发布了46 篇原创文章 · 获赞 10 · 访问量 1840

猜你喜欢

转载自blog.csdn.net/longlong6682/article/details/104743767