前言

使用 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 即可访问了

最新文章

  1. centos+scala2.11.4+hadoop2.3+spark1.3.1环境搭建
  2. cookie编码乱码问题与cookie禁用后session操作
  3. jQuery的选择器中的通配符总结
  4. [Xamarin] 動態載入Fragment (转帖)
  5. (转载)iOS UILabel自定义行间距时获取高度
  6. 【20160924】GOCVHelper MFC增强算法(4)
  7. php 图片处理类
  8. eclipse生成jar包
  9. HDU 1827:Summer Holiday(强连通)
  10. 利用crontab自动更新SVN代码
  11. Quartz 第三课 More About Jobs &amp; JobDetails(官方文档翻译)
  12. HDU_2035——求A^B的最后三位数
  13. H面试程序(10): 字符串包含问题
  14. 项目从Codeigniter 2.2升级至 Codeigniter 3.0的一些注意事项
  15. python 序列(list,tuple,str)基本操作
  16. ajax异步服务器获取时间
  17. TCP全连接队列和半连接队列已满之后的连接建立过程抓包分析[转]
  18. 【百度杯】ctf夺旗大战,16万元奖励池等你拿
  19. Spark Standalone 提交模式
  20. Git和Jenkins日记之没有新提交代码

热门文章

  1. mysql创建存储过程动态SQL语句
  2. mongo 操作
  3. spark中的多目录输出及压缩
  4. Beta冲刺(1/7)——2019.5.23
  5. Jmeter之Bean shell使用(二)(转载)
  6. 在vue-cli中安装element
  7. Xamarin.Android 6.0以后开启权限方法
  8. Java学习:线程池
  9. FusionInsight大数据开发---Streaming应用开发
  10. FusionInsight大数据开发---SparkStreaming概述