售前咨询400-838-0503

如何在云服务器上使用Docker部署应用?

发布:2025-04-04 00:56

云服务器+Docker:3步完成应用部署全攻略

更新时间:2023年7月15日 | 阅读时长:8分钟

在云计算时代,Docker已成为应用部署的黄金标准。本文将手把手教你如何在主流云服务器上通过Docker容器技术快速部署应用,包含阿里云/腾讯云/AWS等平台通用方案,特别针对初学者设计的保姆级教程。

核心价值:无需复杂环境配置,绕过传统部署的"依赖地狱",实现一键式应用发布

一、前期准备:云服务器选购指南

选择云服务器时重点关注三个维度:

  • 配置选择:1核2G起步(测试环境),生产环境建议2核4G以上
  • 系统镜像:推荐Ubuntu 20.04 LTS或CentOS 7+
  • 网络设置:务必开放80/443端口(Web应用)和2375端口(Docker守护)

小技巧:阿里云/腾讯云新用户首年通常有5折优惠,AWS提供12个月免费套餐

二、Docker环境搭建(以Ubuntu为例)

# 1. 卸载旧版本
sudo apt-get remove docker docker-engine docker.io containerd runc

# 2. 安装依赖
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release

# 3. 添加Docker官方GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# 4. 设置稳定版仓库
echo "deb [arch=amd64 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

# 5. 安装Docker引擎
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

# 6. 验证安装
sudo docker run hello-world

若看到"Hello from Docker!"提示,说明安装成功。建议执行以下优化配置:

  • 将当前用户加入docker组:sudo usermod -aG docker $USER
  • 配置镜像加速器(阿里云镜像加速地址需登录控制台获取)

三、实战部署Nginx应用

方案A:直接运行官方镜像

# 拉取最新版Nginx镜像
docker pull nginx:latest

# 运行容器(映射80端口)
docker run --name my-nginx -p 80:80 -d nginx

访问服务器公网IP即可看到Welcome页面

方案B:自定义镜像部署(推荐)

1. 创建项目目录结构:

  • myapp/
    • Dockerfile
    • nginx.conf
    • html/
      • index.html
      • static/

2. Dockerfile示例:

FROM nginx:alpine
COPY nginx.conf /etc/nginx/nginx.conf
COPY html /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

3. 构建并运行:

# 构建镜像
docker build -t my-nginx .

# 运行容器
docker run -d -p 80:80 --name my-nginx-container my-nginx

四、高阶运维技巧

1. 容器数据持久化

使用数据卷避免容器重启丢失数据:

docker run -v /宿主机路径:/容器内路径 ...

2. 日志管理

查看实时日志:

docker logs -f 容器ID

3. 资源监控

查看容器资源占用:

docker stats

4. 服务编排

使用docker-compose管理多容器应用:

version: '3'
services:
  web:
    build: .
    ports:
      - "80:80"

常见问题排查

问题现象 解决方案
无法访问80端口 检查云服务器安全组规则,确认iptables/firewalld配置
docker命令需要sudo 将用户加入docker组后重新登录
镜像拉取速度慢 配置国内镜像加速源

🚀 进阶学习建议:

  1. 学习Docker网络模式(bridge/host/none)
  2. 掌握Docker Swarm或Kubernetes集群部署
  3. 了解CI/CD流水线与Docker的集成

按文档操作后还是不行,把机器编号、出问题的时间点和现象截图一起提工单,能少来回一轮。

提交工单