前言

使用 docker 搭建 nginx 环境

下载镜像

使用docker pull 拉取最新的 nginx 镜像

[root@yoyo ~]# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
b8f262c62ec6: Pull complete
e9218e8f93b1: Pull complete
7acba7289aa3: Pull complete
Digest: sha256:aeded0f2a861747f43a01cf1018cf9efe2bdd02afd57d2b11fcc7fcadc16ccd1
Status: Downloaded newer image for nginx:latest

查看镜像

[root@yoyo ~]# docker images nginx
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest f949e7d76d63 2 weeks ago 126MB
[root@yoyo ~]#

启动容器

先启动容器: docker run -d --name nginx-tmp nginx

[root@yoyo nginx.conf]# docker run -d --name nginx-tmp nginx
7a453ca1aea80eb731de7270dcf6327ae81d2947ffd7faf2ae76253eb7bc0e6a
[root@yoyo nginx.conf]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7a453ca1aea8 nginx "nginx -g 'daemon of…" 4 seconds ago Up 4 seconds 80/tcp nginx-tmp

nginx的目录文件在容器内部的位置

  • 日志文件位置:/var/log/nginx
  • 配置文件位置: /etc/nginx
  • 资源存放的位置: /usr/share/nginx/html

先在本地新建nginx运行的目录,日志目录为软连接,所以不创建logs目录

mkdir -p /root/nginx/html /root/nginx/conf

从容器中拷贝配置文件至本地

docker cp a89b2c5f3dd1:/etc/nginx/nginx.conf /root/nginx/conf

查看/root/nginx/conf目录下nginx.conf 文件内容

[root@yoyo conf]# cd /root/nginx/conf
[root@yoyo conf]# cat nginx.conf user nginx;
worker_processes 1; error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid; events {
worker_connections 1024;
} http {
include /etc/nginx/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 /var/log/nginx/access.log main; sendfile on;
#tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf;
}
[root@yoyo conf]#

配置文件nginx.conf 拷贝到本地目录后,停掉上面的nginx容器并删除

[root@yoyo conf]# docker stop nginx-tmp
nginx-tmp
[root@yoyo conf]# docker rm nginx-tmp
nginx-tmp

正式部署

正式部署完整的指令

docker run -d -p 8088:80 --name nginx-yoyo -v ~/nginx/html:/usr/share/nginx/html -v ~/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v ~/nginx/logs:/var/log/nginx nginx

容器启动后使用docker ps查看有没启动

[root@yoyo nginx]# docker run -d -p 8088:80 --name nginx-yoyo -v ~/nginx/html:/usr/share/nginx/html -v ~/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v ~/nginx/logs:/var/log/nginx nginx
1b4566a75078f55831edcff6b9b8f9d7a63f0d44702aae4cf0635a39aa63cded
[root@yoyo nginx]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1b4566a75078 nginx "nginx -g 'daemon of…" 2 seconds ago Up 1 second 0.0.0.0:8088->80/tcp nginx-yoyo

测试

如果你是本地访问,输入http://localhost:8088 即可访问到 web 服务器

通过其它机器访问服务器会报403错误,因为是将容器内的 nginx 的根目录给挂载到本地指定目录。

进入本地目录 /root/nginx/html 创建测试文件 index.html 写入以下内容

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>nginx</title>
</head>
<body>
<h1>hello world!</h1>
<p>yoyo</p>
</body>
</html>

浏览器输入http://ip:8088 即可访问了

docker学习8-搭建nginx环境的更多相关文章

  1. Docker学习之搭建nginx环境

    前言 很久没写随笔了,今天我们来学习一下如何在docker搭建nginx环境吧! 一:下载镜像,使用docker pull拉取最新的nginx镜像 命令:docker pull nginx 查看镜像: ...

  2. Linux学习9-CentOS搭建nginx环境

    前言 之前我们搭建网站的时候,把war包放到tomcat下就能运行起来了,为什么部署上线的时候,又用到了nginx呢? nginx可以做多台服务器的负载均衡,当用户非常少的时候,可以用一台服务直接部署 ...

  3. 在Linux系统下使用Docker以及Weave搭建Nginx反向代理

    Hi, 今天我们将会学习如何使用 Weave 和 Docker 搭建 Nginx 的反向代理/负载均衡服务器.Weave 可以创建一个虚拟网络将 Docker 容器彼此连接在一起,支持跨主机部署及自动 ...

  4. Docker 快速安装&搭建 Ngnix 环境,并配置反向代理

    欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 高级架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 个人网站: https://www.ex ...

  5. Docker 快速安装&搭建 Mysql 环境

    欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 高级架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 个人网站: https://www.ex ...

  6. Docker 快速安装&搭建 MongDB 环境

    欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 高级架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 个人网站: https://www.ex ...

  7. Docker 安装 Redis, 搭建 Redis 环境

    欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 资深架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 个人网站: https://www.ex ...

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

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

  9. docker学习9-搭建rabbitMQ环境

    前言 docker搭建rabbitMQ环境 下载镜像 rabbitMQ 镜像仓库地址https://hub.docker.com/_/rabbitmq 找带有 mangement的版本,会带后台管理界 ...

随机推荐

  1. iis可以运行但是界面不能在桌面显示是怎么回事

    iis可以运行但是界面不能在桌面显示是怎么回事 引用:https://zhidao.baidu.com/question/1948053642075906588.html 在开始->运行 执行i ...

  2. mapreduce 函数入门 一

    MapReduce 程序的业务编码分为两个大部分,一部分配置程序的运行信息,一部分 编写该 MapReduce 程序的业务逻辑,并且业务逻辑的 map 阶段和 reduce 阶段的代码分别继 承 Ma ...

  3. 宝塔webhook配合码云,本地git push 服务器自动pull

    emmmm,这其实是一个很简单的一件事情,但是有很多坑,记录一下 先大概讲一下原理吧,就是每次您 push 代码后,都会给远程 HTTP URL 发送一个 POST 请求 更多说明 » 然后在宝塔这边 ...

  4. 如何申请腾讯地图用户Key

    打开网页https://lbs.qq.com/,进入腾讯位置服务. 单击[登录],登录腾讯账号(本文以QQ登录为例),如果首次登陆腾讯位置服务,则提示注册开发者账号. 选择箭头处[注册新账号].填写手 ...

  5. Scala 函数基础入门

    函数的定义与调用 在Scala中定义函数时,需要定义函数的函数名.参数.函数体. 我们的第一个函数如下所示: def sayHello(name: String, age: Int) = { if ( ...

  6. SpringBoot:4.SpringBoot整合Mybatis实现数据库访问

    在公司项目开发中,使用Mybatis居多.在 SpringBoot:3.SpringBoot使用Spring-data-jpa实现数据库访问 中,这种jpa风格的把sql语句和java代码放到一起,总 ...

  7. Neo4j学习——基本操作(一)

    由于开始学习知识图谱,因此需要涉及到neo4j的使用一.介绍neo4j是一个图形数据库基于Java开发而成,因此需要配置jvm才可以运行配置请参考我前面的一篇blog:https://www.cnbl ...

  8. [CF254C]Anagram(2019-11-15考试)

    题目大意 给你两个长度相同的字符串\(A,B\),要求改变字符串\(A\)中最少的字符,使得字符串\(A\)在排序后和字符串\(B\)相同.输出改变后的字符串\(A\),若多解,输出字典序最小的.\( ...

  9. 使用git svn clone迁移svn仓库(保留提交记录)

    使用git svn clone迁移svn仓库 clone命令可以指定很多参数,主要用到这些,你也可以使用git svn help查看完整的参数列表. git svn clone https://172 ...

  10. 关于海大邮箱(ouc.edu)客户端配置及使用说明

    关于海大邮箱(ouc.edu)客户端配置及使用说明 邮箱说明 系统简介 海大邮箱使用的是论客(Coremail)提供的邮件系统:(很多大学都是) Coremail论客简介(摘自官网): Coremai ...