如何在美国VPS服务器上部署Docker容器化应用

 

美国VPS服务器上部署 Docker 容器化应用是一个高效、灵活的方式来运行现代应用程序。

 

---

 

## **一、前置准备工作**

 

1. **VPS 准备**

   - 确保你已经购买并配置好一台美国 VPS,推荐使用支持 Docker 的操作系统(如 Ubuntu 20.04 或 CentOS 7 及以上)。

   - 拥有 VPS 的 root 权限或具有 `sudo` 权限的用户。

 

2. **检查服务器配置**

   - **最低硬件要求**:

     - CPU:单核或多核(Docker 对 CPU 要求低)。

     - 内存:至少 512MB(建议 1GB 以上,具体取决于应用需求)。

     - 磁盘空间:建议至少 10GB 可用空间。

   - 确保服务器可以访问互联网,用于下载 Docker 和相关镜像。

 

---

 

## **二、在美国 VPS服务器 上安装 Docker**

 

### **1. 更新系统包**

在安装 Docker 之前,先更新系统的软件包以确保兼容性。

 

#### **Ubuntu/Debian**

```bash

sudo apt update && sudo apt upgrade -y

```

 

#### **CentOS/RHEL**

```bash

sudo yum update -y

```

 

---

 

### **2. 安装 Docker**

 

#### **(1)Ubuntu/Debian**

运行以下命令安装 Docker:

 

```bash

sudo apt install -y apt-transport-https ca-certificates curl software-properties-common

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt update

sudo apt install -y docker-ce docker-ce-cli containerd.io

```

 

#### **(2)CentOS/RHEL**

运行以下命令安装 Docker:

 

```bash

sudo yum install -y yum-utils

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

sudo yum install -y docker-ce docker-ce-cli containerd.io

```

 

---

 

### **3. 启动并测试 Docker**

 

#### **启动 Docker 服务**

```bash

sudo systemctl start docker

sudo systemctl enable docker

```

 

#### **检查 Docker 是否运行正常**

运行以下命令验证安装:

```bash

sudo docker version

sudo docker run hello-world

```

 

如果输出包含 "Hello from Docker!",说明 Docker 安装成功。

 

---

 

## **三、部署 Docker 容器化应用**

 

### **1. 拉取 Docker 镜像**

 

Docker 镜像是运行容器的基础,可以从 Docker Hub 或其他镜像仓库拉取。

 

#### 示例:拉取一个 Nginx 镜像

```bash

sudo docker pull nginx

```

 

---

 

### **2. 运行容器**

 

使用拉取的镜像运行一个容器。

 

#### 示例:运行 Nginx 容器

```bash

sudo docker run -d -p 80:80 --name mynginx nginx

```

 

- **`-d`**:后台运行容器。

- **`-p 80:80`**:将 VPS 的 80 端口映射到容器的 80 端口。

- **`--name mynginx`**:为容器命名为 `mynginx`。

- **`nginx`**:使用的镜像名称。

 

访问你的 VPS IP 地址(如 `http://your_vps_ip`),如果看到 Nginx 的欢迎页面,说明部署成功。

 

---

 

### **3. 部署自定义应用**

 

#### **(1)准备 Docker 镜像**

如果应用已有官方镜像,可以直接拉取使用;如果是自定义应用,则需要创建一个自定义镜像。

 

#### **(2)编写 Dockerfile**

Dockerfile 是定义镜像的配置文件。

 

示例:一个简单的 Node.js 应用

```dockerfile

# 使用官方 Node.js 镜像

FROM node:14

 

# 设置工作目录

WORKDIR /usr/src/app

 

# 复制应用文件到容器

COPY package*.json ./

RUN npm install

COPY . .

 

# 暴露应用端口

EXPOSE 3000

 

# 启动应用

CMD ["node", "app.js"]

```

 

#### **(3)构建镜像**

在包含 `Dockerfile` 的目录下运行以下命令:

```bash

sudo docker build -t mynodeapp .

```

 

#### **(4)运行容器**

```bash

sudo docker run -d -p 3000:3000 --name mynodeapp mynodeapp

```

 

访问 `http://your_vps_ip:3000`,即可访问你的 Node.js 应用。

 

---

 

## **四、管理 Docker 容器**

 

### **1. 查看运行中的容器**

```bash

sudo docker ps

```

 

### **2. 停止容器**

```bash

sudo docker stop <container_name>

```

 

### **3. 删除容器**

```bash

sudo docker rm <container_name>

```

 

### **4. 删除镜像**

```bash

sudo docker rmi <image_name>

```

 

---

 

## **五、设置 Docker Compose(可选)**

 

如果你需要部署多个容器,可以使用 Docker Compose 简化管理。

 

### **1. 安装 Docker Compose**

```bash

sudo curl -L "https://github.com/docker/compose/releases/download/v2.26.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

docker-compose --version

```

 

---

 

### **2. 创建 `docker-compose.yml` 配置文件**

 

示例:部署一个包含 Nginx 和 MySQL 的应用

```yaml

version: '3.8'

services:

  web:

    image: nginx

    ports:

      - "80:80"

    volumes:

      - ./html:/usr/share/nginx/html

  db:

    image: mysql:8.0

    restart: always

    environment:

      MYSQL_ROOT_PASSWORD: example

```

 

---

 

### **3. 启动服务**

```bash

sudo docker-compose up -d

```

 

---

 

## **六、安全加固和优化**

 

1. **配置防火墙**

   - 使用 `ufw` 或 `iptables` 配置防火墙,只开放必要的端口(如 80、443)。

 

2. **定期更新镜像**

   - 使用最新版本的镜像,确保修复已知漏洞:

     ```bash

     sudo docker pull <image_name>

     ```

 

3. **使用 Docker 用户组**

   - 将当前用户添加到 Docker 用户组,避免每次执行命令都需要 `sudo`:

     ```bash

     sudo usermod -aG docker $USER

     ```

 

4. **监控容器**

   - 使用工具如 `Portainer` 或 `Docker Dashboard` 来监控和管理容器。

 

---

 

## **七、测试与发布**

 

1. **测试容器化应用**

   - 确保应用在容器中运行正常,可以通过访问 VPS 的对应端口进行测试。

 

2. **发布到生产环境**

   - 如果需要,将镜像推送到 Docker Hub 或私有镜像仓库:

     ```bash

     docker tag mynodeapp your_dockerhub_username/mynodeapp

     docker push your_dockerhub_username/mynodeapp

     ```

 

---

 

## **八、总结**

 

成功在美国 VPS 上部署 Docker 容器化应用的关键步骤包括:

 

1. 安装 Docker 并确保其正常运行。

2. 拉取镜像或构建自定义镜像。

3. 使用 Docker 容器运行应用,并配置必要的端口映射。

4. 可选使用 Docker Compose 部署复杂应用。

5. 加强安全性和优化性能。

 

通过 Docker,你可以快速部署、扩展和管理应用,从而最大化利用美国 VPS 的性能和灵活性!

 

超过 50,000 人的信任 网硕互联期待你加入我们的会员。