CentOS7 Docker Nginx部署及运行详解

网上找了一些资料部署,出现不一样的问题,现在总结一下自己的部署流程。

1、资源准备

Dockerfile文件

# "ported" by Adam Miller <maxamillion@fedoraproject.org> from
#  https://github.com/fedora-cloud/Fedora-Dockerfiles
#
# Originally written for Fedora-Dockerfiles by
#  scollier <scollier@redhat.com> 

FROM centos:centos7
MAINTAINER The CentOS Project <cloud-ops@centos.org> 

RUN yum -y update; yum clean all
RUN yum -y install epel-release tar ; yum clean all
RUN yum -y install nginx ; yum clean all
ADD nginx.conf /opt/deploy/nginx/nginx.conf
RUN echo "daemon off;" >> /opt/deploy/nginx/nginx.conf
#RUN curl https://git.centos.org/sources/httpd/c7/acf5cccf4afaecf3afeb18c50ae59fd5c6504910 \
#  | tar -xz -C /usr/local/nginx/html \
#  --strip-components=1
#RUN sed -i -e 's/Apache/nginx/g' -e '/apache_pb.gif/d' \
#  /usr/local/nginx/html/index.html 

EXPOSE 80 

#CMD [ "/usr/local/nginx/sbin" ] 

注意:路径需要在系统上面存在以及对应

nginx.conf文件

# For more information on configuration, see:
#  * Official English Documentation: http://nginx.org/en/docs/
#  * Official Russian Documentation: http://nginx.org/ru/docs/ 

user nginx;
worker_processes 1; 

error_log /usr/logs/nginx/error.log;
#error_log /var/log/nginx/error.log notice;
#error_log /var/log/nginx/error.log info; 

pid    /run/nginx.pid; 

events {
  worker_connections 1024;
} 

http {
  include    mime.types;
  default_type application/octet-stream; 

  log_format main '$remote_addr - $remote_user [$time_local] "$request" '
           '$status $body_bytes_sent "$http_referer" '
           '"$http_user_agent" "$http_x_forwarded_for"'; 

  access_log /usr/logs/nginx/access.log main; 

  sendfile    on;
  #tcp_nopush   on; 

  #keepalive_timeout 0;
  keepalive_timeout 65; 

  #gzip on; 

  # Load modular configuration files from the /etc/nginx/conf.d directory.
  # See http://nginx.org/en/docs/ngx_core_module.html#include
  # for more information.
  #include /etc/nginx/conf.d/*.conf; 

  index  index.html index.htm; 

  server {
    listen    80;
    server_name localhost;
    root     /usr/share/nginx/html; 

    #charset koi8-r; 

    #access_log /var/log/nginx/host.access.log main; 

    location / {
      autoindex on;
    } 

    # redirect server error pages to the static page /40x.html
    #
    error_page 404       /404.html;
    location = /40x.html {
    } 

    # redirect server error pages to the static page /50x.html
    #
    error_page  500 502 503 504 /50x.html;
    location = /50x.html {
    } 

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #  proxy_pass  http://127.0.0.1;
    #} 

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ \.php$ {
    #  root      html;
    #  fastcgi_pass  127.0.0.1:9000;
    #  fastcgi_index index.php;
    #  fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
    #  include    fastcgi_params;
    #} 

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #  deny all;
    #}
  } 

  # another virtual host using mix of IP-, name-, and port-based configuration
  #
  #server {
  #  listen    8000;
  #  listen    somename:8080;
  #  server_name somename alias another.alias;
  #  root     html; 

  #  location / {
  #  }
  #} 

  # HTTPS server
  #
  #server {
  #  listen    443;
  #  server_name localhost;
  #  root     html; 

  #  ssl         on;
  #  ssl_certificate   cert.pem;
  #  ssl_certificate_key cert.key; 

  #  ssl_session_timeout 5m; 

  #  ssl_protocols SSLv2 SSLv3 TLSv1;
  #  ssl_ciphers HIGH:!aNULL:!MD5;
  #  ssl_prefer_server_ciphers  on; 

  #  location / {
  #  }
  #} 

}

注意:路径需要在系统上面存在以及对应

2、执行构建镜像命令

代码如下:

[root@localhost nginx]# sudo docker build --rm --tag os7/nginx:centos7 .

执行结果截图:

3、查看镜像是否安装构建成功 Docker images

4、创建容器 docker run -i -t -d -p 192.168.32.129:81:80 os7/nginx /bin/bash

注意:192.168.32.129这个IP的话,则需要在/etc/hosts中添加

192.168.32.129     localhost

5、查看容器是否创建成功并启动 docker ps

6、测试是否成功访问 curl http://192.168.32.129:81

会出现这个拒绝连接,那怎么办呢?有办法解决的,我们先进入该容器里面

7、进入容器 docker exec -i -t small_hodgkin /bin/sh

8、接着在容器里面执行(直接输入即可)

nginx

9、在容器外面执行 curl http://192.168.32.129:81

成功了。

10、再到虚拟机外面通过浏览器访问

到此为止就成功了。

参考资料:https://github.com/CentOS/CentOS-Dockerfiles

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • CentOS 7中利用yum安装Nginx的方法教程

    前言 因为最近在筹备Docker系列课程,其中涉及到在CentOS 7中安装Nginx.遇到一些问题,所以想着将过程总结分享出来供大家参考学习,下面来看看详细的介绍: 当使用以下命令安装Nginx时,发现无法安装成功. yum install -y nginx 需要做一点处理. 安装Nginx源 执行以下命令: rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noar

  • centos6.5通过yum安装nginx

    linux安装nginx以及配置教程,供大家参考,具体内容如下 以下是:centos6.5 通过yum安装nginx 提示No package nginx available 需要先安装epe: yum install epel-release 安装epel之后 yum -y install nginx 安装完成之后 service nginx start 启动nginx 在浏览器访问机器ip可以看到nginx的界面. 如果访问不了,查看linux防火墙状态.增加80端口访问 nginx启动之后

  • CentOS7.2安装Nginx的方法步骤

    CentOS7.2安装Nginx过程笔记,由于学习的需要,这段时间学一点"nginx".今天学习一下Nginx安装,留个笔记 查看CentOS的版本 使用一下命令来查看一下当前系统的版本 [root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) 添加资源库 在 CentOS 系统上安装 Nginx ,你得先去添加一个资源库,像这样: vim /etc/yum.repos.d/ngin

  • centos6.5下Nginx简单安装教程

    如何在centos6.5下安装Nginx,请耐心阅读下面的内容 此处主要介绍通过配置Nginx的官方yum源,通过yum安装Nginx.参考官网:http://nginx.org/en/linux_packages.html 主要分为以下步骤: 1.配置yum源: 创建文件:/etc/yum.repos.d/nginx.repo touch /etc/yum.repos.d/nginx.repo 编辑该文件, vi /etc/yum.repos.d/nginx.repo 写入如下内容: [ngi

  • centos6.5服务器安装Nginx设置服务和开机自启的方法

    本文介绍了centos6.5服务器安装Nginx设置服务和开机自启的方法,分享给大家,也给自己留个笔记 1.安装Nginx及其依赖 首先是老套路,使用ssh链接服务器,还记得以前的代码吗? ssh -t 用户名@服务器IP或者域名 -p 22 <!--用户名一般是root,方便操作,我的登录代码如下--> ssh -t root@acheng1314.cn -p 22 在终端中输入上面命令按下回车,要求我们输入密码,这个密码是不可见的,所以一定要输入正确. 链接到服务器后,我们切换到常用的安装

  • 详解如何在CentOS7中使用Nginx和PHP7-FPM安装Nextcloud

    Nextcloud 是一款自由 (开源) 的类 Dropbox 软件,由 ownCloud 分支演化形成.它使用 PHP 和 JavaScript 编写,支持多种数据库系统,比如 MySQL/MariaDB.PostgreSQL.Oracle 数据库和 SQLite.它可以使你的桌面系统和云服务器中的文件保持同步,Nextcloud 为 Windows.Linux.Mac.安卓以及苹果手机都提供了客户端支持.Nextcloud 并非只是 Dropbox 的克隆,它还提供了很多附加特性,如日历.联

  • CentOS6.3添加nginx系统服务的实例详解

    CentOS6.3添加nginx系统服务的实例详解 前言: 今天虚拟机上配了下服务器整理了个这个 nginx 服务 要注意 - 短横杠这个符号看看复制进去后有没有乱码,我之前就遇到这个问题,郁闷了好久才发现 提示:顶部的注释不要去除否则无法注册为系统服务, 关于:chkconfig: 2345 65 37 网上搜索总结了下意思是: 2345 为启动该服务的系统环境 65   为加载的优先级别 37   为关闭的优先级别 65,37 这两个位置的数值不能相同,也不能和其它服务的数值冲突,这个我也没

  • Centos 6.5 64位中Nginx详细安装部署教程

    一.Nginx简介 Nginx是一个web服务器也可以用来做负载均衡及反向代理使用,目前使用最多的就是负载均衡,具体简介我就不介绍了百度一下有很多,下面直接进入安装步骤 二.Nginx安装 1.下载Nginx及相关组件 Linux系统是Centos 6.5 64位,我直接切换到root用户下安装 进入用户目录下载程序 下载相关组件 [root@localhost src]# wget http://nginx.org/download/nginx-1.10.2.tar.gz 省略安装内容...

  • CentOS7 Docker Nginx部署及运行详解

    网上找了一些资料部署,出现不一样的问题,现在总结一下自己的部署流程. 1.资源准备 Dockerfile文件 # "ported" by Adam Miller <maxamillion@fedoraproject.org> from # https://github.com/fedora-cloud/Fedora-Dockerfiles # # Originally written for Fedora-Dockerfiles by # scollier <scol

  • Spring Cloud中使用jib进行docker部署的步骤详解

    Jib介绍 Jib 是 Google 开发的可以直接构建 Java 应用的 Docker 和 OCI 镜像的类库,以 Maven 和 Gradle 插件形式提供. 通过 Jib,Java 开发者可以使用他们熟悉的 Java 工具来构建容器.Jib 是一个快速而简单的容器镜像构建工具,它负责处理将应用程序打包到容器镜像中所需的所有步骤.它不需要你编写 Dockerfile 或安装 Docker,而且可以直接集成到 Maven 和 Gradle中 -- 只需要将插件添加到构建中,就可以立即将 Jav

  • SEATA事务服务DOCKER部署的过程详解

    1.创库授权语句 > create database seata: > grant all on seata.* to seata_user@'%' identified by '123455' 2.数据库建表语句 cat create_seata_table.sql -- -------------------------------- The script used when storeMode is 'db' -------------------------------- -- the

  • Docker(黑马spring cloud笔记)详解

    目录 介绍和安装 安装 启动 镜像加速 Docker基本操作 镜像操作 容器操作 数据卷操作 Dockerfile 镜像结构 Dockerfile Docker-Compose 安装 基本命令 Docker 私 服搭建 练习 练习1:save和load 练习2:docker部署nginx 练习3:部署MySQL 练习4:基于Ubuntu构建一个新镜像,运行一个java项目 练习5:部署微服务集群 问题:微服务注册失败 介绍和安装 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从

  • Linux Docker安装wordpress的方法详解教程

    安装mysql服务 下载mysql镜像: docker pull mysql 创建mysql容器并后台运行,指定数据库密码是123456.-e指定环境变量. docker run --name mysql_db -e MYSQL_ROOT_PASSWORD=123456 -d mysql 使用官方的wordpress wordpress镜像daocloud.io: docker pull daocloud.io/daocloud/dao-wordpress:latest 拉取镜像前请先登录: d

  • Docker的理解和基本命令详解

    如何通俗解释D ocker是什么? Docker思想来自于集装箱,集装箱解决了什么问题呢?比如,在一艘大船上,要把各种各样的货物要整理起来,集装箱(Docker)就可以做到,并且相互间不会影响.就不需要指定运输的船了(这个船运吃的那个船运穿的).只要把货物装在集装箱里封装好,就可以用一艘大船把他们都运走. 1.Docker就是类似的理念.云计算是运输船,Docker就是集装箱. 1.不同的应用程序可能会有不同的应用环境,比如.net开发的网站和php开发的网站依赖的软件就不一样,如果把他们依赖的

  • Ubuntu系统搭建django+nginx+uwsgi的教程详解

    1. 在开发机上的准备工作 1.确认项目没有bug. 2.用pip freeze > requirements.txt将当前环境的包导出到requirements.txt文件中,方便在部署的时候安装. 3.将项目上传到服务器上的/srv目录下.这里以git的形式为例,打开终端,依次输入如下命令 •git init •git remote add origin xxx.git •git add . •git commit -m 'first commit' •git pull origin mas

  • Vue+Koa2 打包后进行线上部署的教程详解

    最近使用Vue和Koa2重构了自己的博客,过程中踩了不少坑,查了很多资料,最后总算成功上线.之后我计划围绕这个过程写一系列文章,讲讲如何用Vue+Koa2写一套网站. 而现在,先来讲讲最后一步,在写完Vue和Koa2后,如何将它们部署到线上. 1.将Vue和Koa2结合 很多人在打完包后就不知道怎么做了,毕竟后面都是后端的事情.如果你用的是Vue-cli3.0,那么打包这一步会非常简单,只需要执行一条命令即可,其它的不用关心: npm run build 之后会生成一个dist的文件夹,将它放到

  • CentOS 7上安装Docker 1.8 的步骤详解

    Docker支持运行在以下CentOS版本: •CentOS 7.X 安装在二进制兼容的EL7版本如 Scientific Linux也是可能成功的,但是Docker 没有测试过并且不官方支持. 此文带你通过使用Docker管理的发行包和安装机制来安装.使用这些报能确保你使用最新的Docker版本. 如果你希望使用CentOS管理的包,请阅读你的CentOS文档. 要求 不过你的系统版本是多少,Docker都要求64位.并且当CentOS7时你的内核必须不小于3.10. 检查当前内核版本: #

  • Docker工作模式及原理详解

    如下图所示: 我们在使用虚拟机和docker的时候,就会出现这样一个疑问:Docker为什么比VM虚拟机快呢? 上面这张图就很客观的说明了这个问题 1.Docker有着比虚拟机更少的抽象层. 2.Docker利用的是宿主机的内核,VM需要的是Guest os. 所以说,新建一个容器的时候,docker不需要像虚拟机一样重新加载一个操作系统.虚拟机是加载Guest os(花费时间分钟级别),而docker利用的是宿主机的操作系统,省略了这个复杂的过程(花费时间秒级别). 搞清楚这些,我们再来看看对

随机推荐