How to run nginx in Docker and mount the local directory into the image

How to run nginx in Docker and mount the local directory into the image

1 Pull the image from hup

docker pull nginx

2 Create the directory to be mounted

mkdir -p /data/nginx/{conf,conf.d,html,logs}

3 You must have a configuration file before you can start the container

3.1 vim /data/conf/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;
}

3.2 vim /data/nginx/conf.d/default.conf

server { 
  listen 80; 
  server_name localhost; 
 
  #charset koi8-r; 
  #access_log /var/log/nginx/log/host.access.log main; 
 
  location / { 
    root /data/nginx/html; 
    # root /usr/nginx/html; 
    index index.html index.htm; 
    autoindex on; 
  try_files $uri /index/index/page.html; 
    #try_files $uri /index/map/page.html; 
  } 
 
  #error_page 404 /404.html; 
 
  # redirect server error pages to the static page /50x.html 
  # 
  error_page 500 502 503 504 /50x.html; 
  location = /50x.html { 
    root /usr/share/nginx/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; 
  #} 
}

4 Start the container

#Map port 80 of nginx in the container to port 81 locally docker run --name nginx81 -d -p 81:80 -v /data/nginx/html:/usr/share/nginx/html -v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /data/nginx/logs:/var/log/nginx -v /data/nginx/conf.d:/etc/nginx/conf.d -d nginx:latest

5 View the started container

[root@dc01 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fa56f865bd26 nginx:latest "nginx -g 'daemon of..." 4 weeks ago Up 3 seconds 0.0.0.0:80->80/tcp vigilant_swirles
[root@dc01 ~]#

6 Web page access nginx

The above is the full content of this article. I hope it will be helpful for everyone’s study. I also hope that everyone will support 123WORDPRESS.COM.

You may also be interested in:
  • How to configure https for nginx in docker
  • How to install nginx in docker and configure access via https
  • How to deploy nginx with Docker and modify the configuration file
  • nginx automatically generates configuration files in docker container
  • How to configure nginx+php+mysql in docker
  • How to install and configure Docker nginx
  • Docker nginx + https subdomain configuration detailed tutorial

<<:  Example code for implementing timeline and animation effects using JavaScript (front-end componentization)

>>:  Installation method of MySQL 5.7.18 decompressed version under Win7x64

Recommend

Analysis of parameter transfer process of driver module in Linux

Declare the parameter name, type and permission y...

How to Understand and Identify File Types in Linux

Preface As we all know, everything in Linux is a ...

Detailed explanation of how to create an array in JavaScript

Table of contents Creating Arrays in JavaScript U...

Usage and scenario analysis of npx command in Node.js

npx usage tutorial Tonight, when I was learning V...

Solution to the failure of loading dynamic library when Linux program is running

Unable to load dynamic library under Linux When t...

How to implement the paging function of MyBatis interceptor

How to implement the paging function of MyBatis i...

Spring Boot layered packaging Docker image practice and analysis (recommended)

Table of contents 1. Prepare the springboot proje...

VUE implements token login verification

This article example shares the specific code of ...

A brief analysis of MySQL parallel replication

01 The concept of parallel replication In the mas...

Docker deployment of Flask application implementation steps

1. Purpose Write a Flask application locally, pac...

Detailed explanation of the Sidecar mode in Docker Compose

Table of contents What is Docker Compose Requirem...

Reasons and solutions for MySQL sql_mode modification not taking effect

Table of contents Preface Scenario simulation Sum...