docker搭建nginx

这篇具有很好参考价值的文章主要介绍了docker搭建nginx。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、安装Docker
1、安装:

yum install docker 


2、启动/停止/重启docker服务

systemctl docker start 
systemctl docker stop 
systemctl docker restart
#开机自启动 
systemctl enable docker

#设置容器自启动
1.创建容器时设置
docker run -d --restart=always --name 设置容器名 使用的镜像
(上面命令  --name后面两个参数根据实际情况自行修改)
 
# Docker 容器的重启策略如下:
 --restart具体参数值详细信息:
       no        // 默认策略,容器退出时不重启容器;
       on-failure    // 在容器非正常退出时(退出状态非0)才重新启动容器;
       on-failure:3    // 在容器非正常退出时重启容器,最多重启3次;
       always      // 无论退出状态是如何,都重启容器;
       unless-stopped  // 在容器退出时总是重启容器,但是不考虑在 Docker 守护进程启动时就已经停止了的容器。

2.修改已有容器,使用update
#如果创建时未指定 --restart=always,可通过update 命令设置
docker update --restart=always 容器ID(或者容器名)
(容器ID或者容器名根据实际情况修改)


3、查看docker版本信息

docker version


4、查看所有docker镜像

docker images

docker搭建nginx
二、安装Nginx
1、拉取Nginx镜像文件

docker pull [镜像名]:[版本号]  //版本号可省略,省略会下载最新版本
例如:
docker pull nginx //下载最新的Nginx镜像


2、查看下载好的镜像文件  

docker images

docker搭建nginx


3、创建并运行Nginx容器

docker run -d --name nginx01 -p 8050:80 nginx
命令详解:
# docker run 启动一个镜像
# -d 表示后台允许
# --name nginx01  表示为当前容器起一个别名
# -p 8050:80 表示将本机的8050端口映射到nginx镜像的80端口
4、查看正在运行的容器
docker ps

docker搭建nginx
5、查看Nginx是否部署成功

curl localhost:8050

docker搭建nginx
 

1、进入Nginx容器当中

docker exec -it nginx /bin/bash
命令详解:
# docker exec 在运行的容器中执行命令
# -i 以交互模式运行容器,通常与 -t 同时使用;例如-it
# -t 为容器重新分配一个伪输入终端,通常与 -i 同时使用;例如-it
# nginx 容器名
# /bin/bash 其实就是表示载入容器后运行bash(命令语言解释程序), 因为docker中必须要保持一个进程(运行的程序)的运行,要不然整个容器就会退出,所以说,bash就担任起了docker中运行的那个进程的角色!
#而/bin/bash则是bash在linux下的位置



2、在容器中查询出nginx的相关配置文件存放位置

whereis nginx

docker搭建nginx
3、退出容器,回到本地linux系统

exit


4、停止并移除Nginx容器

docker stop ff6fc #停止容器,容器id可不用写全,只要写到能识别到唯一一条就可以
docker rm ff6fc #移除容器
# bedfd2a72585表示容器的ID,即:CONTAINER ID


5、本地创建管理目录

mkdir -p /usr/local/nginx
mkdir -p /usr/local/nginx/html 
mkdir -p /usr/local/nginx/conf
mkdir -p /usr/local/nginx/logs


6、将容器中的相应文件copy到刚创建的管理目录中

docker cp ff6fc:/etc/nginx/nginx.conf /usr/local/nginx/
docker cp ff6fc:/etc/nginx/conf.d /usr/local/nginx/conf/
docker cp ff6fc:/usr/share/nginx/html/ /usr/local/nginx/html/
docker cp ff6fc:/var/log/nginx/ /usr/local/nginx/logs/
注:docker cp ff6fc中的 "ff6fc" 为容器ID(docker ps可查看),也可换成容器名,例如上面容器名是nginx,可写成 docker cp nginx:/etc/nginx/nginx.conf /usr/local/nginx/  ,但是要区分唯一性


7、再次启动容器并作目录挂载

docker run --name nginx -p 8050:80 -v /usr/local/nginx/nginx.conf:/etc/nginx/nginx.conf -v /usr/local/nginx/www/:/usr/share/nginx/html/ -v /usr/local/nginx/logs/:/var/log/nginx/ -v /usr/local/nginx/conf/:/etc/nginx/conf.d --privileged=true -d nginx
docker run --name nginx -p 8050:80 -v /usr/local/nginx/nginx.conf:/etc/nginx/nginx.conf -v /usr/local/nginx/www/:/usr/share/nginx/html/ -v /usr/local/nginx/logs/:/var/log/nginx/ -v /usr/local/nginx/conf/:/etc/nginx/conf.d --privileged=true -d nginx
这里挂载的路径和端口要明白,不然配置conf文件会乱
就是
端口:宿主机8050端口映射docker里nginx容器的80端口,所以我们访问宿主机ip+8050端口,就会映射到docker里nginx容器里的80端口,所以nginx配置文件listen是监听80端口,这个千万不要搞错了
页面:打包的页面文件夹是build,宿主机页面路径/usr/local/nginx/www/,映射的是docker里nginx容器的/usr/share/nginx/html/路径,所以nginx配置文件
里的location的/usr/share/nginx/html这个路径不用调整,只需在后面加上部署的前端页面路径,下面就是加上了build,然后前端打包的页面build文件夹放在宿主机的/usr/local/nginx/www/就可以了
location / {
        root   /usr/share/nginx/html/build;
        try_files $uri $uri/ /index.html;
        index  index.html index.htm;
    }

所以流程是这样,我们输入网址宿主机+8050端口会映射到nginx配置文件80端口,然后nginx80端口是监听的,于是就会走到“localtion / ”这个位置,然后会定位到/usr/share/nginx/html/build这个路径,又因为/usr/share/nginx/html/相当于宿主机/usr/local/nginx/www/,所以最终会去宿主机/usr/local/nginx/www/build找到页面,所以我们的页面文件夹build需要放在/usr/local/nginx/www/这里

 后端服务:因为现在nginx是部署在docker容器里,后台服务部署在宿主机里,基于docker和宿主机通信是通过搭建新的网关桥docker0网桥,我们可以通过docker inspect nginx(容器名或容器id)看到nginx的ip是172.17.0.4

docker搭建nginx

 查看宿主机在docker0网桥下的所属ip是172.17.0.1docker搭建nginx

 宿主机的wlan(使用wifi分配的ip) ip是192.168.1.106(使用网线的可以查看eth0分配的ip)

docker搭建nginx

 基于docker和宿主机通信是通过搭建新的网关桥docker0网桥

需要注意的一点就是,即使ping通了,docker里nginx的容器最好进行telnet测试一下能否连通宿主机的后端端口

若不通,就要看看宿主机是否防火墙是否开放这个端口

所以nginx配置后端服务需要这样配置,需要代理到docker0网桥分配的ip:172.17.0.1或者网线分配的ip或者wifi分配的ip:192.168.1.106的后台服务

location /prod-api/ {
			proxy_set_header Host $http_host;
			proxy_set_header X-Real-IP $remote_addr;
			proxy_set_header REMOTE-HOST $remote_addr;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_pass http://172.17.0.1:8081/;
            #或 proxy_pass http://192.168.1.106:8081/;
		}

最后附上nginx配置文件文章来源地址https://www.toymoban.com/news/detail-500629.html

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  localhost;
		charset utf-8;

		location / {
            root   /usr/share/nginx/html/build;
            try_files $uri $uri/ /index.html;
            index  index.html index.htm;
        }

		
		location /prod-api/ {
			proxy_set_header Host $http_host;
			proxy_set_header X-Real-IP $remote_addr;
			proxy_set_header REMOTE-HOST $remote_addr;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_pass http://172.17.0.1:8081/;
            #或 proxy_pass http://192.168.1.106:8081/;
		}

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

到了这里,关于docker搭建nginx的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Docker】Docker+Nacos+MySQL,Docker安装启动Nacos(详细讲解、全网最细),手把手教你Docker搭建nacos单机版

    点击跳转:Docker安装MySQL、Redis、RabbitMQ、Elasticsearch、Nacos等常见服务全套(质量有保证,内容详情) 本文描述了如何用Docker安装Nacos的单机版,含单机非持久化版本和单机持久化版本 Nacos作为微服务的配置中心,无论是在开发测试和生产中,用户更希望Nacos能保存用户的配置

    2024年02月12日
    浏览(36)
  • ELK环境搭建——Install with Docker

    Install Docker Desktop or Docker Engine Install the appropriate Docker application for your operating system. Make sure that Docker is allotted at least 4GiB of memory. In Docker Desktop, you configure resource usage on the Advanced tab in Preference (macOS) or Settings (Windows). Optional: Verify the Elasticsearch Docker image signature Although it’s op

    2024年02月14日
    浏览(33)
  • Docker启动nginx服务

    Docker启动nginx服务 Docker启动nginx服务,搭建静态资源服务器。 [Docker 启动nginx服务] 1、先启动空的nginx服务 2、将docker nginx服务的配置文件拷贝到本地要挂载的目录下 3、删除之前的空nginx服务,重新启动nginx服务,且挂载本地目录 4、编辑本地挂载目录下的配置文件nginx.conf 5、重

    2024年02月11日
    浏览(21)
  • 【Docker】使用 Docker 主机启动 Nginx 服务器的步骤详解

    在本文中,我们将介绍如何使用Docker在主机上启动Nginx服务器。Nginx是一个高性能的HTTP和反向代理服务器,经常用于托管网站和Web应用。通过Docker,我们可以轻松地部署和管理Nginx服务器,使得整个过程变得简单而高效。 步骤一:安装Docker 首先,确保您的主机上已经安装了

    2024年04月26日
    浏览(33)
  • 使用docker启动nginx超详细过程

    安装docker网上有大量教学我推荐:https://yeasy.gitbook.io/docker_practice/install/centos 拉取Nginx镜像 docker pull nginx ,不加 : 就是不指定版本,docker 默认拉最新版, 启动 docker run -d --name=font_nginx -p 9090:80 nginx:latest [运行命令] 这里运行命令不用去写因为默认nginx的镜像是 nginx -g ,但是不是全是

    2024年02月03日
    浏览(34)
  • 【docker桌面版】windows使用docker搭建nginx

    1.拉取nginx镜像 docker pull nginx 2.运行容器 docker run -d -p 80:8081 --name nginx nginx 3.本地磁盘创建nginx目录 D:Dockerprojectnginx 4.复制docker中的nginx配置文件 查看运行的容器docker ps -a docker cp 8f18d58bc77b:/etc/nginx/nginx.conf D:Dockerprojectnginxconf 5.停止刚启动的nginx容器 docker stop 8f18d58bc77b doc

    2024年02月13日
    浏览(28)
  • docker搭建nginx

    一、安装Docker 1、安装: 2、启动/停止/重启docker服务 3、查看docker版本信息 4、查看所有docker镜像 二、安装Nginx 1、拉取Nginx镜像文件 2、查看下载好的镜像文件   3、创建并运行Nginx容器 5、查看Nginx是否部署成功   1、进入Nginx容器当中 2、在容器中查询出nginx的相关配置文件存

    2024年02月11日
    浏览(22)
  • docker desktop搭建 nginx

    拉取 nginx 镜像 运行容器 本地磁盘创建 nginx 目录 复制 docker 中的 nginx 配置文件 查看运行的容器 docker ps -a 停止刚启动的 nginx 容器 启动一个新的 nginx 容器,并将容器中的配置目录挂载到本地磁盘的目录中 本地浏览器访问 127.0.0.1:8081

    2024年02月13日
    浏览(24)
  • wsl2安装docker引擎(Install Docker Engine on Debian)

    官方地址: 在 Debian 上安装 Docker 引擎  https://docs.docker.com/engine/install/debian/ 1.卸载旧版本 在安装 Docker 引擎之前,您必须首先确保卸载任何冲突的软件包。 发行版维护者在他们的存储库。必须先卸载这些软件包,然后才能安装 Docker 引擎的正式版本。 要卸载的非官方软件包是

    2024年02月13日
    浏览(35)
  • docker搭建nginx+php环境

    一、docker拉取nginx和php镜像 命令如下: 1、创建本地挂载路径: 2、创建php容器 3、创建nginx本地挂在路径: 4、nginx配置文件如下: 5、创建nginx容器: PS: 6、创建文件测试: 效果如下: 参考文章:nginx调用php原理

    2024年02月13日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包