从0起步,在Ubuntu上使用docker或docker compose部署nginx

2023-12-17 12:03:19 来源/作者: 这里教程网整理 /

需求描述

公司新买了一台服务器,想在上面部署一个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