搜索

📄 文章 📚 合集
热门搜索
🐘 PHP ⚡ Laravel 🎨 Vue.js ⚛️ React 📦 Yii 📘 JavaScript 🗄️ MySQL 🐳 Docker
返回合集

[板块7:Docker 容器化交付] - 03 -Docker 服务器部署项目

代码示例
# 好站站企业建站引擎 - Docker服务器部署文档

## 一、前提条件

- 服务器操作系统:CentOS 7 / Ubuntu 20.04+
- 已安装宝塔面板(可选,用于反向代理)
- 服务器可访问外网


## 二、安装 Docker

### 2.1 CentOS 7 安装命令

```bash
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
systemctl start docker
systemctl enable docker
docker --version
```

### 2.2 Ubuntu 安装命令

```bash
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
systemctl start docker
systemctl enable docker
docker --version
```

---

## 三、配置镜像加速器(国内必做)

mkdir -p /etc/docker
cat > /etc/docker/daemon.json << EOF
{
  "registry-mirrors": ["https://registry.cn-hangzhou.aliyuncs.com"]
}
EOF
systemctl restart docker

---

## 四、拉取镜像

docker pull codeyoursmile/haozhanzhan:latest

---

## 五、运行容器

### 5.1 检查端口占用

```bash
netstat -tlnp | grep :80
```

- **无输出**:80 端口空闲,可直接用 80
- **有输出**:端口被占用,改用 8080

### 5.2 运行容器

# 使用 8080 端口(推荐,避免与宝塔冲突)
docker run -d -p 8080:80 --name haozhanzhan codeyoursmile/haozhanzhan:latest

### 5.3 验证容器运行

docker ps
curl http://localhost:8080

看到 HTML 输出即成功。

---

## 六、配置 Nginx 反向代理(宝塔用户)

### 6.1 添加站点

1. 宝塔面板 → 网站 → 添加站点
2. 域名填写:`www.你的域名.com`
3. 根目录任意(如 `/www/wwwroot/proxy`)

### 6.2 设置反向代理

1. 进入站点设置 → 反向代理 → 添加反向代理
2. 代理名称:`haozhanzhan`
3. 目标 URL:`http://127.0.0.1:8080`
4. 发送域名:`$host`

### 6.3 保存并测试

浏览器打开 `http://www.你的域名.com`,看到好站站安装页面即成功。

---

## 七、非宝塔用户 Nginx 配置

如果未使用宝塔,直接修改 Nginx 配置:

```nginx
server {
    listen 80;
    server_name www.你的域名.com;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
```

重启 Nginx:

```bash
nginx -t
systemctl restart nginx
```

---

## 八、常用命令速查

| 操作 | 命令 |
|------|------|
| 查看容器状态 | `docker ps` |
| 停止容器 | `docker stop haozhanzhan` |
| 启动容器 | `docker start haozhanzhan` |
| 重启容器 | `docker restart haozhanzhan` |
| 查看容器日志 | `docker logs haozhanzhan` |
| 进入容器 | `docker exec -it haozhanzhan sh` |
| 删除容器 | `docker rm -f haozhanzhan` |
| 拉取最新镜像 | `docker pull codeyoursmile/haozhanzhan:latest` |
| 更新容器 | `docker stop haozhanzhan && docker rm haozhanzhan && docker pull ... && docker run ...` |

---

## 九、更新部署流程

当本地代码更新并推送新镜像后,服务器执行:

docker pull codeyoursmile/haozhanzhan:latest
docker stop haozhanzhan
docker rm haozhanzhan
docker run -d -p 8080:80 --name haozhanzhan codeyoursmile/haozhanzhan:latest

🧸 adorable code

专注 PHP、JavaScript、Laravel、Vue.js、React、Yii 全栈开发。记录技术探索过程中的灵感与经验,分享工程实践洞见。

hello@adorablecode.com