环境

  • 操作系统(cat /etc/redhat-release):CentOS Linux release 7.6.1810 (Core)
  • Docker:18.09.6

文件

  • Dockerfile
FROM nginx:1.14-alpine
LABEL maintainer="chenjo <yoyo@chenjo.com>" ENV NGX_DOC_ROOT="/data/web/html/" ADD index.html ${NGX_DOC_ROOT}
ADD entrypoint.sh /bin/ CMD ["/usr/sbin/nginx", "-g", "daemon off;"]
ENTRYPOINT ["/bin/entrypoint.sh"]
#以下写法在实验中均不行,容器一旦运行就立马退出
#ENTRYPOINT ["/bin/sh", "-c", "/bin/entrypoint.sh"]
#ENTRYPOINT ["/bin/sh", "-c", "/bin/sh"]
  • entrypoint.sh
[root@appsvr img3]# cat entrypoint.sh
#!/bin/sh
cat > /etc/nginx/conf.d/www.conf << EOF
server {
server_name ${HOSTNAME};
listen ${IP:-0.0.0.0}:${PORT:-80};
root ${NGX_DOC_ROOT:-/usr/share/nginx/html/};
}
EOF exec "$@"
  • index.html
<h1>New Doc for Nginx</h1>

相关命令

# 生成镜像
docker build -t myweb3:v0.3-1 ./
# 运行容器
docker run --name myweb --rm -P myweb3:v0.3-1
# 访问 Nginx 的默认主页
curl 10.0.0.2
# 通过另一个终端访问该容器
docker exec -it myweb /bin/sh
# 查看主机名
cat /etc/nginx/conf.d/www.conf
# 通过主机名访问自定义的主页
wget -O - -q 6a04e5550bce

要点说明

CMD 是作为参数传给 ENTRYPOINT,对于这个案例而已,就相当于 /bin/entrypoint.sh /usr/sbin/nginx -g 'daemon off;'

在 entrypoint.sh 中,exec "$@",$@ 表示传入的参数的全体,exec 表示让子进程获得父进程的 PID 并取而代之,父进程退出。在这里,父进程是 shell。

[Docker] 制作并运行 Nginx 镜像的更多相关文章

  1. docker制作cenos+php56+nginx镜像

    首先你环境要安装好docker 1 获取centos镜像. docker search centos 选取第一个官方镜像. docker pull  docker.io/centos 新建镜像挂载目录 ...

  2. [Docker] Win10中安装Docker并运行Nginx镜像

    一.安装Docker 进入官网:https://www.docker.com/products/docker-desktop 可能需要先注册登录,很简单的. 点击 Download Desktop f ...

  3. docker实战之通过nginx镜像来部署静态页

    本章我们主要讲解如何通过docker构建一个nginx容器,这里我们以部署一个静态html为素材来进行演示. 首先我们通过[docker search nginx]命令来查找Docker Hub上的n ...

  4. CentOS7安装Docker,运行Nginx镜像、Centos镜像

    摘要 总体思路:yum命令直接安装Docker,下载想要的镜像并启动 1.环境,CentOS7 Minimal 64位,Docker必须要64位的系统 2.通过yum命令直接安装,yum instal ...

  5. docker安装并修改Nginx镜像

    1.安装nginx镜像,命令:docker pull nginx 2.创建nginx容器,并启动,命令:docker run --name webserver -d -p 192.168.51.227 ...

  6. docker学习之路-nginx镜像(翻译)

    本篇来自https://hub.docker.com/_/nginx/?tab=description 它是docker hub上nginx的官方网站,上面有关于nginx的使用描述等.从这里你可以找 ...

  7. Docker基本使用运行ngix镜像

    docker pull 项目名 会从docker默认的仓库去拉去项目,如果是docker pull 项目名 地址 会从给定地址拉去镜像 docker run image名字  运行镜像 docker架 ...

  8. Docker制作私有的基础镜像

    debootstrap是debian/ubuntu下的一个工具,用来构建一套基本的系统(根文件系统).生成的目录符合Linux文件系统标准(FHS),即包含了/boot./etc./bin./usr等 ...

  9. Docker 拉取Nginx镜像 和运行

    Docker 镜像拉取 docker pull [OPTIONS] NAME[:TAG|@DIGEST] 镜像拉取命令 OPTIONS说明: -a :拉取所有 tagged 镜像 --disable- ...

随机推荐

  1. 【Python】matplotlib直方图纵轴显示百分比

    其实很简单,就是算了一下百分比权重,乘以了一个权重值 import matplotlib.pyplot as plt from matplotlib.ticker import FuncFormatt ...

  2. Table.Sort排序…Sort(Power Query 之 M 语言)

    数据源: 任意查询表 目标: 对其中一列数据进行排序 操作过程: 选取对象>[主页]>[排序]>[升序排序] 选取对象>[主页]>[排序]>[降序排序] M公式: ...

  3. CF975A Aramic script 题解

    Content 定义一个字符串的根为字符串中不同种类的字符按字典序非降序排列得到的字符串.例如 \(\texttt{aaa}\) 的词根为 \(\texttt{a}\),\(\texttt{babb} ...

  4. mongodb 连接方式之mongo-shell

    单机连接:mongo 120.131.0.64:27017 -u root -p KingSoft@1314 --authenticationDatabase admin 字符串连接 python i ...

  5. Windows系统安装ActiveMQ

    1.下载安装包:https://activemq.apache.org/components/classic/download/ 选择自己的版本进行下载 2.安装JDK 3.把下载的ActiveMQ压 ...

  6. JAVA执行cmd命令方法

    package com.cmd; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStre ...

  7. IDEA推荐配置(自动导入包、提示不区分大小写)

    设置快捷键方式为eclipse 设置代码提示不区分大小写 自动导入包 可以通过 Ctrl + 鼠标滚轮 来控制代码字体大小显示 显示行号和显示区分方法线 代码一行显示不下,软分行显示,点击鼠标右键 增 ...

  8. vc++ 调用winapi调节屏幕亮度

    !!版权声明:本文为博主原创文章,版权归原文作者和博客园共有,谢绝任何形式的 转载!! 作者:mohist ---- 已经更正文章中错误的地方, 时间: 10/10/2020--------- 自己封 ...

  9. 【LeetCode】150. Evaluate Reverse Polish Notation 解题报告(Python)

    [LeetCode]150. Evaluate Reverse Polish Notation 解题报告(Python) 标签: LeetCode 题目地址:https://leetcode.com/ ...

  10. 【LeetCode】830. Positions of Large Groups 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...