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

需求描述

公司新买了一台服务器,想在上面部署一个nginx服务器,/opt/nginx/config/存放nginx的配置文件,/opt/nginx/html存放nginx的静态网站文件,/opt/nginx/logs存放nginx的日志信息,这时候该怎么办?

一、安装Docker

如果你的服务器上还没有安装Docker,首先需要安装它。可以使用以下命令:

bash 复制代码
sudo apt update
sudo apt install docker.io

安装完成后,启动 Docker 服务并设置为开机自启动:

bash 复制代码
sudo systemctl start docker
sudo systemctl enable docker

查看Docker是否开启,出现绿色圆点表示服务正常开启

bash 复制代码
sudo systemctl status docker

二、Docker 镜像源配置

1、打开终端,运行以下命令以编辑 Docker 配置文件

bash 复制代码
nano /etc/docker/daemon.json

2、将以下配置信息复制并粘贴到 nano 编辑器中:

json 复制代码
{
    "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 的配置文件。

bash 复制代码
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 文件,

bash 复制代码
sudo nano /opt/nginx/config/nginx.conf

文件内容参考下面的配置,注意配置中的路径要使用容器中的路径,而不是宿主机中的路径:

ini 复制代码
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容器。运行以下命令:

bash 复制代码
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`.

运行以下命令检查容器的运行状态:

bash 复制代码
sudo docker ps

五、使用Docker Compose部署nginx

在服务器上创建一个名为 docker-compose.yml 的文件,并添加以下内容:

yaml 复制代码
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容器:

bash 复制代码
sudo docker-compose up -d
相关推荐
一条小小yu2 小时前
Spring IoC的理解
java·后端·spring
茉莉玫瑰花茶3 小时前
GO [ 方法 ]
开发语言·后端·golang
Wx-bishekaifayuan3 小时前
django个性化旅游路线推荐平台49005-计算机课程设计、毕业设计
spring boot·后端·python·django·课程设计·express·旅游
Eric_见嘉3 小时前
在职前端 Skill 和 MCP 分享
前端·后端·agent
夜听莺儿鸣3 小时前
502-003_Linux 中断与异常(一):从Linux角度理解中断与异常
linux·中断与异常·linux中断
杨云龙UP4 小时前
TDengine 3.4.2.8 Community 三节点三副本生产集群部署实战(DNode/MNode/taosAdapter/Explorer)
大数据·linux·运维·数据库·tdengine·时序库
孟健4 小时前
出海开发者资金合规:从港卡结汇到完税申报实操
后端·架构
乌暮5 小时前
深入理解 Java 泛型:把「万能盒子」用对、用稳
java·开发语言·后端·学习
向成科技5 小时前
XC3576H工控主板|深度适配Ubuntu 26.04 LTS,释放边缘AI与工业开发新潜能
linux·人工智能·ubuntu·机器人·硬件·主板·边缘ai
架构技术专栏5 小时前
Skill 有效性与稳定性评估:用对照、重复与证据判断价值
后端