需求描述
公司新买了一台服务器,想在上面部署一个nginx服务器,/opt/nginx/config/
存放nginx的配置文件,/opt/nginx/html
存放nginx的静态网站文件,/opt/nginx/logs
存放nginx的日志信息,这时候该怎么办?
一、安装Docker
如果你的服务器上还没有安装Docker,首先需要安装它。可以使用以下命令:
sudo apt update
sudo apt install docker.io
安装完成后,启动 Docker 服务并设置为开机自启动:
sudo systemctl start docker
sudo systemctl enable docker
查看Docker是否开启,出现绿色圆点表示服务正常开启
sudo systemctl status docker
二、Docker 镜像源配置
1、打开终端,运行以下命令以编辑 Docker 配置文件
nano /etc/docker/daemon.json
2、将以下配置信息复制并粘贴到 nano
编辑器中:
{
"registry-mirrors" : [
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn",
"https://cr.console.aliyun.com",
"https://mirror.ccs.tencentyun.com"
]
}
按下 Ctrl
+ O
键,然后按 Enter
键,以保存文件。接着按下 Ctrl
+ X
键,退出 nano
编辑器。
3、重启 Docker 服务
sudo systemctl daemon-reload
sudo systemctl restart docker
三、创建Nginx配置文件夹和文件
在服务器上创建需要的文件夹,用于存放 Nginx 的配置文件。
sudo mkdir -p /opt/nginx/config # 创建Nginx配置文件夹
sudo mkdir -p /opt/nginx/html # 创建Nginx静态网站文件夹
sudo mkdir -p /opt/nginx/logs # 创建Nginx日志文件夹
在 /opt/nginx/config
目录下创建一个 nginx.conf
文件,
sudo nano /opt/nginx/config/nginx.conf
文件内容参考下面的配置,注意配置中的路径要使用容器中的路径,而不是宿主机中的路径:
nginxCopy code
worker_processes 1;
events {
worker_connections 1024;
}
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
}
四、使用Docker部署nginx
上述创建的配置文件和文件夹,使用Docker运行Nginx容器。运行以下命令:
sudo docker run -d
--name nginx # 容器的名称为nginx
-p 80:80 # 映射主机端口80到容器端口80
-v /opt/nginx/config/nginx.conf:/etc/nginx/nginx.conf
-v /opt/nginx/html:/opt/nginx/html
-v /opt/nginx/logs:/var/log/nginx
nginx:latest # 使用的版本,可以指定版本号,比如 `nginx:1.20`.
运行以下命令检查容器的运行状态:
sudo docker ps
五、使用Docker Compose部署nginx
在服务器上创建一个名为 docker-compose.yml
的文件,并添加以下内容:
version: '3'
services:
nginx:
image: nginx:latest
container_name: nginx
volumes:
- /opt/nginx/config:/etc/nginx/conf.d
- /opt/nginx/html:/usr/share/nginx/html
- /opt/nginx/logs:/var/log/nginx
ports:
- "80:80"
restart: always
在包含 docker-compose.yml
文件的目录中运行以下命令启动Nginx容器:
sudo docker-compose up -d