以下是使用 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(如果已安装):
- 安装 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 是否安装成功:
或者(如果使用 APT 安装):docker-compose --version
docker compose version
- 使用官方脚本安装(推荐):
2. 创建项目目录和配置文件
- 创建一个目录用于存放 Nginx 的配置文件和网页内容:
mkdir -p ~/nginx/{config/{conf.d,cert},html,logs}
- 创建
docker-compose.yml
文件:services: nginx: image: nginx:1.26 container_name: nginx restart: unless-stopped ports: - "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 服务。