打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Dockerfile 搭建 Nginx基础镜像和Nginx项目镜像

docker使用教程相关系列 目录



基础镜像和项目镜像介绍

既然是搭建镜像那就简单地说一下,在企业中的镜像分类:

  • 基础镜像

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

如:Nginx,Tomcat

  • 项目镜像

项目镜像就是放在线上进行运行的,是基于基础镜像之上 在进行构成的。

简单理解,就是把项目放到了 Nginx基础镜像里

构建Nginx基础镜像

在使用 Dockerfile 之前 一定要梳理自己的步骤。

切记、切记

  1. 安装Nginx
  2. 你要启用哪些模块
  3. Nginx初始化
  4. 启动

有了 步骤之后就要想到 以上的步骤在Dockerfile中要使用那些指令运行

1 RUN
2 RUN
3 RUN
4 CMD / ENTRIPONIT

编译Dockerfile的技巧:

先在from的镜像中编译一遍,再把脚本复制出来到Dockerfile中,可以提高成功率

加快镜像构建速度:Dockerfile脚本将多个RUN指令合并为一个,多用“\”和"&&"这两个符号。

"&&"符号连接命令,这样执行后,只会创建 1 层镜像

“\”位于行末进行格式换行

减少Docker镜像的大小:每个 RUN 指令后删除多余文件

更多好的优化dockerfile方案,请查看这位博主的内容,写得很详细

如何编写最佳的Dockerfile

开工

# 你要给他一个

vim Dockerfile-nginx

然后在里面写这些

FROM centos:7
MAINTAINER www.zenghw.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 镜像是否创建成功


这个 V1就是我们构建的基础镜像了 

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

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

服务是启动了,但为什么会找不到页面呢??

是因为我们在dockerfile里写了 把nginx/html/*目录下的文件全删除了,访问html/status.html就可以访问到的

使用nginx:v1 基础镜像构建一个项目镜像

# 生成文件页面展示
touch index.html

 

# 编辑里面的内容
vim index.html

# 在里面写入
hello nginx

# 新创建本地镜像 并写入内容,指定刚才的 index.html文件
vim Dockerfile_nginx_project_hello
FROM nginx:v1
COPY index.html /usr/local/nginx/html   # 需要在当前目录中创建index.html文件

docker build -t nginx:v2 -f Dockerfile_nginx_project_hello .                  # 使用Dockerfile创建一个项目镜像 nginx:v2

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

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

浏览器显示: I Love

dockerfile的作用是从无到有的构建镜像。它包含安装运行所需的环境、程序代码等。这个创建过程就是使用 dockerfile 来完成的。Dockerfile - 为 docker build 命令准备的,用于建立一个独立的 image 。

参考于:https://pea328.blog.csdn.net/article/details/104705357

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Docker 实战教程之从入门到提高(三)
Docker学习笔记之--借助Docker Compose进行多容器部署(环境:centos7)
Docker从入门到精通,看这一篇就够了
Docker容器学习梳理-Dockerfile构建镜像
使用 docker 快速部署 hexo 博客
centos安装Docker与使用&&构建业务镜像挂载卷harbor仓库的高可用及网络模式和资源限制介绍
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服