首页 > 系统相关 >Docker安装Nginx入门示例

Docker安装Nginx入门示例

时间:2023-03-11 20:12:58浏览次数:38  
标签:nginx 示例 Nginx conf home Docker Data yyj

测试环境:

Ubuntu 20.04

Docker version 23.0.1

Nginx容器版本:1.23.3

1.拉取镜像

拉取命令:

docker pull nginx:1.23.3

查看镜像:

yyj@yyj:~$ docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
nginx        1.23.3    904b8cb13b93   9 days ago     142MB

可以看到成功拉取到了nginx:1.23.3镜像

2.创建映射目录

在宿主机上,创建需要映射的目录,命令如下:

mkdir -p /home/yyj/Data/Docker/nginx/conf
mkdir -p /home/yyj/Data/Docker/nginx/logs
mkdir -p /home/yyj/Data/Docker/nginx/html

创建的路经说明:

路经 作用
/home/yyj/Data/Docker/nginx/conf 用来映射nginx容器中/etc/nginx/nginx.conf路经下的配置文件
/home/yyj/Data/Docker/nginx/logs 用来映射nginx容器中/var/log/nginx路经下的日志
/home/yyj/Data/Docker/nginx/html 用来映射nginx容器中/usr/share/nginx/html路经下的静态文件

3.创建配置文件

下载好的nginx镜像中其实有个nginx.conf配置文件了,我们只需要启动一个临时的nginx容器,把容器中的nginx.conf文件复制到我们指定的路经就行了;当然你也可以从其他地方找到合适的nginx.conf配置文件;这里以第一种方式为例,复制一个nginx.conf文件即可:

# 使用nginx:1.23.3创建并启动一个叫“nginx”的nginx容器
docker run --rm -d --name nginx nginx:1.23.3
# 复制容器内部的nginx.conf配置文件到指定的“/home/yyj/Data/Docker/nginx/conf/”路经下
docker cp nginx:/etc/nginx/nginx.conf /home/yyj/Data/Docker/nginx/conf/
# 关闭运行的容器;由于使用了--rm参数,容器会在停止运行并退出时自动删除容器
docker stop nginx

至此,我们可以用ls命令查看配置文件是否复制到了指定的目录下:

yyj@yyj:~$ ls /home/yyj/Data/Docker/nginx/conf/nginx.conf 
/home/yyj/Data/Docker/nginx/conf/nginx.conf

nginx.conf配置文件内容如下:

user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
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;
}

4.创建容器并运行

命令如下:

docker run -itd \
  --name nginx \
  --network yyj_network \
  --ip 192.168.7.4 \
  -p 80:80 \
  -p 443:443 \
  -p 8080:8080 \
  -v /home/yyj/Data/Docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:ro \
  -v /home/yyj/Data/Docker/nginx/html:/usr/share/nginx/html \
  -v /home/yyj/Data/Docker/nginx/logs:/var/log/nginx \
  nginx:1.23.3

到步骤4,容器已经创建并运行了,可以使用docker ps命令查看。

其他说明:

如果你的docker不需要指定使用的network固定的ip,即使用--network yyj_network--ip 192.168.7.4参数,可以去掉这2处。

5.测试

此步骤仅仅为了简单测试反向代理

  • 创建静态文件

在宿主机/home/yyj/Data/Docker/nginx/html目录下新建一个叫”test.html“的文件

vim /home/yyj/Data/Docker/nginx/html/test.html

内容如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试</title>
</head>
<body>
    <h1>测试Nginx</h1>
</body>
</html>
  • 修改配置文件

修改/home/yyj/Data/Docker/nginx/conf/nginx.conf路经下的nginx.conf配置文件,在http块中加入如下server块,内容如下:

# 这是加入的server块,用来测试反向代理访问静态文件
server {
	listen 80;
	server_name example.com;

	location /static/ {
		alias /usr/share/nginx/html/;
	}
}
  • 重启nginx测试

重启nginx容器:

docker restart nginx

浏览器访问如下地址:

127.0.0.1:80/static/test.html

avatar

发现可以代理成功。

标签:nginx,示例,Nginx,conf,home,Docker,Data,yyj
From: https://www.cnblogs.com/youngyajun/p/17206827.html

相关文章

  • HTML-示例)
    <!doctypehtml><html><head><title>Bootstrap实例-堆叠的水平</title><linkrel="stylesheet"href="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/boo......
  • 【教学典型案例】28.生产环境nginx限制上传大小
    目录​​一:背景介绍​​​​二:Nginx限制上传大小​​​​1、Nginx官方文档说明​​​​2、设置参数​​​​1)、在server模块中设置​​​​2)、在http模块中设置​​​​三:问......
  • HTML 示例代码
    <html><head><title>邮件</title><linkrel="stylesheet"href="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css">......
  • Nginx基础 - 08路径Rewrite
     一、Rewrite基本描述rewrite主要实现url地址重写,以及重定向。 使用场景URL访问跳转:支持开发设计,页面跳转,兼容性支持SEO优化:依赖于url路径,以便......
  • Nginx基础 - 07代理缓存
     缓存是用来减少后端压力,将压力尽可能的往前推, 提高网站的并发延时。一、缓存常见类型服务端缓存:redis/memcached代理缓存,获取服务端内容进行缓存:Nginx_proxy  ......
  • sonar在linux上 docker部署
    参考资料:https://blog.csdn.net/naumy/article/details/120677544https://www.cnblogs.com/shenh/p/13428029.html1.拉取镜像一、拉取相关镜像并运行数据库1.1.1拉取相......
  • 完美卸载Docker
    1,删除docker所在目录rm-rf/etc/dockerrm-rf/run/dockerrm-rf/var/lib/dockershimrm-rf/var/lib/docker2,Kill掉Docker进程ps-ef|grepdockerkill-9......
  • php连接docker运行的mysql,显示(HY000/2002): Connection refused的解决办法
    php连接docker运行的mysql,显示(HY000/2002):Connectionrefused的解决办法-斌哥tobin-博客园(cnblogs.com)php要连接docker中运行的mysql是不能用localhost,127.......
  • Nginx如何升级Openssl
    1.什么是Openssl?在计算机网络上,OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连线者的身份。这个包广泛被应用在互联......
  • Nginx基础 - 04静态资源
      一、静态资源类型Nginx作为静态资源Web服务器部署配置,传输非常的高效,常常用于静态资源处理、请求、动静分离。非服务器动态运行生成的文件属于静态资源。类型......