How to use docker to install the web service provided by nginx
1. Pull the image
The docker pull command is used to pull the application image, and the docker pull nginx
command is used to pull the latest version of the nginx image. The following is the response result of the image pulling process:
# docker pull nginx Using default tag: latest latest: Pulling from library/nginx c229119241af: Pull complete 2215908dc0a2: Pull complete 08c3cb2073f1: Pull complete 18f38162c0ce: Pull complete 10e2168f148a: Pull complete c4ffe9532b5f: Pull complete Digest: sha256:2275af0f20d71b293916f1958f8497f987b8d8fd8113df54635f2a5915002bf1 Status: Downloaded newer image for nginx:latest docker.io/library/nginx:latest
From the above we can see that the nginx image is pulled from the URL docker.io
.
Use the docker images
command to view which image files have been downloaded in the current operating system.
# docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest 12766a6745ee 33 hours ago 142MB hello-world latest feb5d9fea6a5 6 months ago 13.3kB
REPOSITORY image warehouse and image name. If the image warehouse is not displayed, the default is
docker.io
TAG The version or milestone label of the image, latest represents the latest version
IMAGE ID The unique identifier of the image
CREATED The time when this image was created
SIZE represents the size of the image file
2. Run the image to start the container
Through docker run
The command starts a container with the container name nginx-zimug.
# docker run -d --name nginx-zimug -p 80:80 nginx 81bb1211144bc0991a789f860458548643c60b5459466c14d0604be9a4ccbfd7
-d
indicates that the container is running in the background--name
Create a name for the container Name-p
Port mapping, the format isHost port:Container port
, the above meaning is to map port 80 in the container To port 80 of the host machine, provide external access services. The last field is the image name
When the browser accesses port 80 of the host through the HTTP protocol, the port number can be omitted. The access results obtained are as follows, indicating that our nginx service has been started successfully.
You can view the running container through docker ps
, as shown below:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 81bb1211144b nginx "/docker-entrypoint.…" 11 minutes ago Up 11 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp nginx-zimug
3. File mapping
First of all, it is clear that the contents of files in the container can be modified, but once the container is restarted, all modifications to data files and configuration files written to the container will be lost. Therefore, in order to save the running status and execution results of the container, we need to map some important data files, log files, and configuration files in the container to the host.
Take nginx as an example. nginx has three important file directories:
Path in the container | Automatically in the host Define the mapping path | |
---|---|---|
The directory where website pages are stored | /usr/share/nginx/html | /root/nginx /html |
nginx configuration file directory | /etc/nginx/nginx.conf | /root/nginx/conf/nginx.conf |
Log directory | /var/log/nginx | /root/nginx/logs |
Create a new file directory in the host machine
mkdir -p /root/nginx/logs /root/nginx/html /root/nginx/conf;
Copy the files in the container to the host machine
Copy the nginx configuration file to the host machine
docker cp nginx-zimug:/etc/nginx/nginx.conf /root/nginx/conf;
Put a simulated html file into the html directory
Save the following file as index.html and put it into the host's /root/nginx/html
Directory, because there is a mapping relationship, it is actually placed in the /usr/share/nginx/html
directory of the container.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>使用docker搭建nginx web服务</title> </head> <body> <h2 id="访问成功">访问成功</h2> <p>厉害了!</p> </body> </html>
4. Start the container service again
-v
The parameter expresses the mapping relationship between the host file and the file in the container, and the format is -v host Directory: Container file system directory
. Start a new container. The name of the container is nginx-prod
docker run -d -p 80:80 \ --name nginx-prod \ -v /root/nginx/html:/usr/share/nginx/html \ -v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \ -v /root/nginx/logs:/var/log/nginx nginx
Before starting the new container, delete the old nginx-zimug container. If the old container is not deleted, the port of the new container will conflict with the port of the old container. Use the following command to delete the container:
docker stop nginx-zimug; docker rm nginx-zimug;
Execute the above docker run
command to start a new container. After startup, access port 80 of the host through the browser. The response result is as follows, which proves that nginx is providing web services normally.
At the same time, you can modify the nginx configuration on the host machine and view the runtime log file. Changing the configuration file will affect the nginx service running in the container because there is a mapping relationship between the host and the configuration file in the container.
The above is the detailed content of How to use docker to install the web service provided by nginx. For more information, please follow other related articles on the PHP Chinese website!

NGINX and Apache each have their own advantages and disadvantages, and the choice should be based on specific needs. 1.NGINX is suitable for high concurrency scenarios because of its asynchronous non-blocking architecture. 2. Apache is suitable for low-concurrency scenarios that require complex configurations, because of its modular design.

NGINXUnit is an open source application server that supports multiple programming languages and provides functions such as dynamic configuration, zero downtime updates and built-in load balancing. 1. Dynamic configuration: You can modify the configuration without restarting. 2. Multilingual support: compatible with Python, Go, Java, PHP, etc. 3. Zero downtime update: Supports application updates that do not interrupt services. 4. Built-in load balancing: Requests can be distributed to multiple application instances.

NGINXUnit is better than ApacheTomcat, Gunicorn and Node.js built-in HTTP servers, suitable for multilingual projects and dynamic configuration requirements. 1) Supports multiple programming languages, 2) Provides dynamic configuration reloading, 3) Built-in load balancing function, suitable for projects that require high scalability and reliability.

NGINXUnit improves application performance and manageability with its modular architecture and dynamic reconfiguration capabilities. 1) Modular design includes master processes, routers and application processes, supporting efficient management and expansion. 2) Dynamic reconfiguration allows seamless update of configuration at runtime, suitable for CI/CD environments. 3) Multilingual support is implemented through dynamic loading of language runtime, improving development flexibility. 4) High performance is achieved through event-driven models and asynchronous I/O, and remains efficient even under high concurrency. 5) Security is improved by isolating application processes and reducing the mutual influence between applications.

NGINXUnit can be used to deploy and manage applications in multiple languages. 1) Install NGINXUnit. 2) Configure it to run different types of applications such as Python and PHP. 3) Use its dynamic configuration function for application management. Through these steps, you can efficiently deploy and manage applications and improve project efficiency.

NGINX is more suitable for handling high concurrent connections, while Apache is more suitable for scenarios where complex configurations and module extensions are required. 1.NGINX is known for its high performance and low resource consumption, and is suitable for high concurrency. 2.Apache is known for its stability and rich module extensions, which are suitable for complex configuration needs.

NGINXUnit improves application flexibility and performance with its dynamic configuration and high-performance architecture. 1. Dynamic configuration allows the application configuration to be adjusted without restarting the server. 2. High performance is reflected in event-driven and non-blocking architectures and multi-process models, and can efficiently handle concurrent connections and utilize multi-core CPUs.

NGINX and Apache are both powerful web servers, each with unique advantages and disadvantages in terms of performance, scalability and efficiency. 1) NGINX performs well when handling static content and reverse proxying, suitable for high concurrency scenarios. 2) Apache performs better when processing dynamic content and is suitable for projects that require rich module support. The selection of a server should be decided based on project requirements and scenarios.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

WebStorm Mac version
Useful JavaScript development tools

mPDF
mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

EditPlus Chinese cracked version
Small size, syntax highlighting, does not support code prompt function

DVWA
Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

SublimeText3 English version
Recommended: Win version, supports code prompts!
