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

jQuery plugin to achieve image comparison

This article example shares the specific code of ...

Briefly understand the two common methods of creating files in Linux terminal

We all know that we can use the mkdir command to ...

JS implements the dragging and placeholder functions of elements

This blog post is about a difficulty encountered ...

Detailed explanation of MySql 5.7.17 free installation configuration tutorial

1. Download the mysql-5.7.17-winx64.zip installat...

Detailed explanation of Mysql logical architecture

1. Overall architecture diagram Compared to other...

Web componentd component internal event callback and pain point analysis

Table of contents Written in front What exactly i...

Ubuntu 20.04 Chinese input method installation steps

This article installs Google Input Method. In fac...

Implementation of breakpoint resume in Node.js

Preface Normal business needs: upload pictures, E...

Ubuntu16.04 builds php5.6 web server environment

Ubuntu 16.04 installs the PHP7.0 environment by d...

Linux virtual memory settings tutorial and practice

What is Virtual Memory? First, I will directly qu...

vsCode generates vue templates with one click

1. Use the shortcut Ctrl + Shift + P to call out ...

How to implement logic reuse with Vue3 composition API

Composition API implements logic reuse steps: Ext...

HTML tag dl dt dd usage instructions

Basic structure: Copy code The code is as follows:...