当前位置: 首页 > news >正文

docker-compse安装nginx

以下是使用 Docker Compose 安装 Nginx 的详细步骤:

1. 安装 Docker 和 Docker Compose

  • 安装 Docker
    • 卸载旧版本的 Docker(如果已安装):
      sudo apt-get remove docker docker-engine docker.io containerd runc
      sudo rm -rf /var/lib/docker
      sudo rm -rf /var/lib/containerd
      
    • 安装必要的依赖包:
      sudo apt-get update
      sudo apt-get install -y ca-certificates curl gnupg lsb-release
      
    • 添加 Docker 官方 GPG 密钥:
      sudo mkdir -p /etc/apt/keyrings
      curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
      
    • 设置 Docker 的 APT 源:
      echo \"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
      
    • 安装 Docker Engine:
      sudo apt-get update
      sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin
      
    • 启动 Docker 并设置开机自启:
      sudo systemctl enable --now docker
      
    • 验证 Docker 是否安装成功:
      sudo docker run hello-world
      
      如果看到 Hello from Docker!,则说明安装成功。
  • 安装 Docker Compose
    • 使用官方脚本安装(推荐):
      sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
      sudo chmod +x /usr/local/bin/docker-compose
      
    • 或者使用 APT 安装(版本可能较旧):
      sudo apt-get install -y docker-compose-plugin
      
    • 验证 Docker Compose 是否安装成功:
      docker-compose --version
      
      或者(如果使用 APT 安装):
      docker compose version
      

2. 创建项目目录和配置文件

  • 创建一个目录用于存放 Nginx 的配置文件和网页内容:
    mkdir -p ~/nginx/{config/{conf.d,cert},html,logs}
    
  • 创建 docker-compose.yml 文件:
    services:nginx:image: nginx:1.26container_name: nginxrestart: unless-stoppedports:- "80:80"- "443:443"volumes:- ./nginx/config/nginx.conf:/etc/nginx/nginx.conf- ./nginx/config/conf.d:/etc/nginx/conf.d- ./nginx/config/cert:/etc/nginx/cert- ./nginx/logs:/var/log/nginx- ./nginx/html:/usr/share/nginx/html
    
  • 创建 Nginx 配置文件 nginx.conf
# 全局块
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;# events 块
events {worker_connections 1024;  # 每个工作进程的最大连接数use epoll;                # 使用的事件驱动模型(epoll 是 Linux 下的高性能模型)multi_accept on;          # 是否允许一个进程同时接受多个连接
}# http 块
http {include /etc/nginx/mime.types;default_type application/octet-stream;sendfile on;tcp_nopush on;tcp_nodelay on;keepalive_timeout 65;gzip on;include /etc/nginx/conf.d/*.conf;server {listen 80;server_name example.com;root /usr/share/nginx/html/example.com;index index.html;location / {try_files $uri $uri/ =404;}}
}
  • 创建一个简单的网页文件 index.html
  <html><body><h1>Welcome to Nginx on Docker!</h1></body></html>

3. 启动 Nginx 容器

  • docker-compose.yml 文件所在的目录下运行以下命令启动 Nginx 容器:
    docker-compose up -d
    
    这将根据 docker-compose.yml 文件中的配置启动 Nginx 容器,并将其置于后台运行。

4. 验证和访问

  • 打开浏览器,访问 http://localhost,如果看到欢迎页面,则说明 Nginx 已成功运行。
  • 如果需要查看容器的日志,可以运行以下命令:
    docker-compose logs nginx
    

5. 停止和卸载

  • 停止并移除 Nginx 容器:
    docker-compose down
    

通过以上步骤,你可以使用 Docker Compose 快速搭建一个 Nginx 服务。

http://www.lryc.cn/news/581840.html

相关文章:

  • Win11 安装 Visual Studio(保姆教程 - 更新至2025.07)
  • Altium Designer使用入门(非精通)教程 第三章(PCB绘制)
  • Application的onLowMemory从Android API 34开始系统不再触发,从API 35开始废弃
  • 【机器学习笔记Ⅰ】12 逻辑回归
  • get: ()=>state 和get: ()=>{state}
  • std::vector<bool>有什么特殊的吗
  • Podman与Docker详细比较:从原理到使用
  • 单片机总复习
  • 开关电源抄板学习
  • Spring Cloud Alibaba/Spring Boot整合华为云存储实例(REST API方式)
  • 反向遍历--当你修改一个元素的outerHTML时,该元素会被从 DOM 中移除
  • Python设计小游戏方法简介
  • 【C++】string类(二)相关接口介绍及其使用
  • 2025年03月 C/C++(四级)真题解析#中国电子学会#全国青少年软件编程等级考试
  • LeetCode 每日一题 2025/6/30-2025/7/6
  • WPF学习笔记(26)CommunityToolkit.Mvvm与MaterialDesignThemes
  • 端到端矢量化地图构建与规划
  • 【机器学习笔记 Ⅱ】1 神经网络
  • 从源码到思想:OneCode框架模块化设计如何解决前端大型应用痛点
  • RDF安装使用教程
  • 408第三季part2 - 计算机网络 - 传输层
  • 计算机网络实验——配置ACL
  • 植物大战僵尸杂交重制版1.0,经典焕新,重燃策略塔防之火
  • C 语言指针与作用域详解
  • 计算机网络实验——互联网安全实验
  • SQL Server从入门到项目实践(超值版)读书笔记 20
  • Solidity——什么是selfdestruct
  • 数据结构---链表结构体、指针深入理解(三)
  • nginx的使用
  • 机器学习手写字体识别系统:技术演进与应用实践