返回列表

阿里云国际版ECS部署Docker教程:安装Docker、开放端口并运行容器应用完整操作指南

阿里云国际 / 2026-10-10 16:04:11

如果需要更深入咨询了解可以联系全球代理上TG: @cloudcup  他们在云平台领域有更专业的知识和建议,他们有国际阿里云,国际腾讯云,国际华为云,aws亚马逊,谷歌云一级代理的渠道,微软云开户充值。oss防风控上传加密系统。客服1V1服务,支持免实名、免备案、免绑卡。开通即享专属VIP优惠、充值秒到账、官网下单享双重售后支持。

用户搜索“阿里云国际版 阿里云服务器部署Docker教程”时,通常不是想了解Docker是什么,而是已经进入实际部署阶段,正在处理几个具体问题:ECS买多大合适、选哪个地域延迟更低、Linux系统装哪个版本更稳、Docker怎么快速安装、为什么容器跑起来了公网却访问不到、端口到底要开安全组还是开防火墙,或者两边都要开。本文直接按真实部署顺序写,适合第一次在阿里云国际版ECS上部署Docker应用的用户,也适合需要快速排错的运维人员。

部署时最容易卡住的几个节点

从实际操作看,用户最关心的不是“能不能安装Docker”,而是“安装后能不能马上访问应用”。真正高频的问题通常集中在以下几步。

操作阶段常见问题直接影响
购买ECS地域选错、带宽太小、镜像版本不兼容延迟高、后续安装麻烦
远程连接SSH连不上、公网IP未分配、22端口未放行无法进入服务器
Docker安装仓库源失效、系统版本不匹配、依赖缺失安装失败或服务无法启动
容器运行端口映射错误、容器异常退出、镜像拉取慢应用不可用
公网访问安全组未放行、系统防火墙未开放、应用监听127.0.0.1浏览器打不开

如果你的目标是尽快上线一个测试站点、API服务或管理后台,建议优先按本文的流程完成一个最小可用部署,再做镜像加速、HTTPS、反向代理、自动重启等优化。

开始前要准备什么

账号和权限

你需要一个阿里云国际版账号,并具备创建ECS、安全组、弹性公网IP或公网带宽的权限。如果账号由公司统一管理,先确认是否有VPC、实例、快照和安全组的操作权限,否则很容易在创建实例或修改网络规则时卡住。

建议准备的资源

项目建议配置说明
实例规格2 vCPU / 2GB内存起步适合单容器测试、Nginx、轻量API
系统盘40GB ESSD或高效云盘镜像、日志、容器层都要占空间
公网带宽3Mbps起步仅测试可更低,正式业务建议5Mbps以上
系统镜像Ubuntu 22.04 / Debian 12 / CentOS Stream谨慎选优先选择社区支持活跃版本
登录方式SSH密钥优先,其次密码密钥更安全,避免弱密码

前置条件检查

  • 确认实例已分配公网IP,或者绑定了弹性公网IP。
  • 本地电脑有SSH工具,例如Terminal、iTerm、Xshell、MobaXterm。
  • 如果部署Web服务,提前确认要使用的端口,如80、443、8080、3000、5000。
  • 如果后续需要域名访问,提前准备DNS解析和备案策略,但本文先解决“公网IP直连可用”。

阿里云国际版ECS购买与创建步骤

步骤1:创建ECS实例时参数怎么选

登录阿里云国际版控制台后,进入ECS实例创建页面。这里最关键的是地域、可用区、实例规格、镜像、系统盘和网络配置。

地域选择不要只看价格,要先看你的用户在哪。如果用户主要在中国香港、新加坡、日本、美国西海岸,建议优先选离用户近的地域。跨境业务如果目标客户在东南亚,香港和新加坡一般是更常见的选择。管理后台类应用对延迟敏感度低,但API、站点和下载服务对地域更敏感。

业务类型推荐地域思路注意事项
中国香港访客香港地域优先延迟低,但价格通常高于部分海外地域
东南亚用户新加坡优先适合跨境电商、SaaS后台
日本用户东京优先本地访问体验更稳定
欧美用户美国西部或欧洲就近选择避免亚洲地域跨洋访问

实例规格方面,如果只是跑一个Nginx、Node.js、Java轻量服务或小型管理系统,2核2G通常可以启动并测试;如果同时跑Nginx + 应用容器 + Redis,建议直接选2核4G,后续更省排障时间。系统盘不建议低于40GB,因为Docker镜像、构建缓存和日志容易把小盘打满。

步骤2:网络和登录参数设置

在网络部分,确保实例加入正确的VPC和交换机。如果只是单机部署,一个默认VPC即可。需要公网访问时,务必勾选分配公网IP或购买公网带宽。很多用户实例创建完成后才发现无法公网访问,原因不是Docker问题,而是压根没公网出口。

登录凭证建议选择SSH Key Pair。如果你使用密码登录,请设置高强度密码,至少包含大小写、数字和特殊字符。创建后记录公网IP、私网IP、实例ID和地域信息,后续排障时会频繁用到。

步骤3:安全组初始规则一次配好

在创建实例阶段就配置安全组,能减少后续重复修改。至少放通以下端口:

端口用途是否建议立即放行
22SSH远程连接是,建议限制来源IP
80HTTP访问部署Web应用时放行
443HTTPS访问后续上SSL时需要
8080测试应用常用端口按需放行
3000/5000开发框架默认端口仅测试时临时放行

注意:安全组放行不等于系统防火墙也放行,两边都要检查。

连接ECS并安装Docker

步骤1:SSH连接Linux实例

在本地终端执行以下命令:

ssh root@你的公网IP

阿里云国际版 如果是Ubuntu默认用户,也可能是:

ssh ubuntu@你的公网IP

首次连接会提示确认指纹,输入yes即可。如果超时,先检查三件事:22端口是否在安全组放行、实例是否有公网IP、本地网络是否限制SSH。

步骤2:更新系统并安装Docker

以下以Ubuntu / Debian系为例,兼容性更好,部署速度也更快。

apt update && apt -y upgrade

apt -y install ca-certificates curl gnupg lsb-release

install -m 0755 -d /etc/apt/keyrings

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg

chmod a+r /etc/apt/keyrings/docker.gpg

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo $VERSION_CODENAME) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null

apt update

apt -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

安装完成后检查服务状态:

systemctl enable docker

systemctl start docker

systemctl status docker

如果看到active (running),说明服务正常。

步骤3:验证Docker是否可用

执行:

docker version

docker run hello-world

如果hello-world容器输出成功信息,说明Docker运行环境已完成。如果拉取镜像很慢,可以后续补充镜像加速配置,但在阿里云国际版环境下,加速源可用性会因地域而不同,建议先验证基础功能,再决定是否配置自建镜像代理。

开放端口并运行容器应用

步骤1:在阿里云控制台开放安全组端口

进入ECS实例详情页,找到绑定的安全组,添加入方向规则。例如你要运行Nginx容器并通过80端口访问,规则填写如下:

配置项示例值
方向入方向
协议类型TCP
目的端口范围80/80
授权对象0.0.0.0/0(测试)
描述Allow HTTP

如果你部署的是后台管理系统,不建议长期对全网开放管理端口,最好限制来源IP段。

阿里云国际版 步骤2:在系统内开放防火墙

如果服务器启用了UFW,执行:

ufw allow 22/tcp

ufw allow 80/tcp

ufw allow 443/tcp

阿里云国际版 ufw status

如果系统使用firewalld,则执行:

firewall-cmd --permanent --add-port=80/tcp

firewall-cmd --permanent --add-port=443/tcp

firewall-cmd --reload

不少“明明安全组开了但还是访问不到”的问题,最终都出在系统防火墙没同步开放。

步骤3:启动容器并映射端口

先用Nginx做最简单验证:

docker pull nginx:latest

docker run -d --name web01 --restart always -p 80:80 nginx:latest

参数说明要注意两点:-d表示后台运行;-p 80:80表示服务器80端口映射到容器80端口。如果你的应用在容器内监听的是3000端口,命令应该类似:

docker run -d --name app01 --restart always -p 80:3000 your-image-name

这里常见错误是把端口写反,导致访问服务器80端口时根本进不到正确进程。

步骤4:检查应用是否真的对外监听

容器启动后,不要立刻认为部署完成,继续检查:

docker ps

ss -lntp | grep :80

curl http://127.0.0.1

curl http://你的公网IP

如果本机127.0.0.1能访问、公网IP不能访问,优先排查安全组和防火墙;如果本机都不能访问,说明容器本身没有正常启动,或者应用进程没有监听0.0.0.0。

部署完成后如何判断是哪一层出了问题

实际排障时,建议按照“实例网络 → 安全组 → 系统防火墙 → Docker端口映射 → 容器进程”这个顺序查,不要一上来就重装。

现象优先排查处理方法
SSH无法连接22端口、公网IP、实例状态检查安全组和实例是否Running
Docker安装失败系统版本、仓库源、DNS更换软件源或检查解析
容器启动马上退出应用启动命令错误查看docker logs 容器名
浏览器超时安全组、防火墙、端口映射逐层验证80或业务端口
返回502或空白页容器内应用未启动进入容器检查进程和配置

查看日志命令:

docker logs web01 --tail 100

进入容器排查:

docker exec -it web01 /bin/bash

如果镜像没有bash,可以用:

docker exec -it web01 sh

阿里云国际版 不同用户场景的配置建议

个人开发者

建议2核2G、40GB系统盘、3Mbps公网带宽。系统优先Ubuntu 22.04。适合部署个人博客、测试接口、轻量管理后台。不要一开始就同时部署数据库、缓存、反向代理和监控,先跑通一个容器应用。

企业用户

建议2核4G或4核8G起步,业务容器与数据库分离。安全组不要全网开放SSH和数据库端口,管理端口限制办公IP。结合快照做变更前备份,容器务必使用--restart always策略。

跨境业务

重点看地域延迟和公网质量。面向东南亚用户优先新加坡,面向香港用户优先香港。上线前用本地和目标地区分别做Ping、TCPing和应用层响应测试,不能只看控制台显示的带宽。

网站应用

建议容器前增加Nginx反向代理,后续统一处理80/443、证书和压缩配置。如果是WordPress、Laravel、Node.js站点,建议应用容器与数据库分实例部署,避免小内存机器频繁OOM。

数据库业务

不建议把MySQL、Redis直接裸露在公网。应优先使用私网连接,或者只对白名单IP开放。如果只是测试环境,也要避免0.0.0.0/0永久开放3306和6379。

常见问题FAQ

1. 为什么ECS已经安装Docker,但执行docker命令报权限不足?

如果你不是root用户,需要把当前用户加入docker组:

usermod -aG docker 用户名

执行后重新登录会话生效。临时处理也可以直接使用sudo执行docker命令。

2. 为什么容器显示Up,但公网IP打不开页面?

通常是四类原因:安全组端口未放行、系统防火墙未开放、Docker端口映射错误、应用仅监听127.0.0.1。按顺序检查控制台安全组、ufw status或firewall-cmd --list-ports、docker ps端口映射、以及应用配置里的监听地址。

3. 阿里云国际版ECS选CentOS还是Ubuntu更省事?

如果你的目标是尽快把Docker跑起来,Ubuntu 22.04通常更直接,社区教程、依赖兼容性和软件仓库都更省时间。CentOS旧版本已不适合作为新部署首选,尤其在新组件和镜像兼容方面更容易遇到问题。

4. Docker镜像拉取很慢怎么办?

先确认是不是网络DNS问题,再确认目标镜像仓库是否可达。国际版ECS一般访问Docker Hub条件相对国内环境更直接,但不同地域速度仍会波动。可通过更换时间段、配置镜像代理或在CI阶段预构建镜像后上传私有仓库来优化。

5. 端口开放后仍然连接超时,怎么快速定位?

阿里云国际版 可以按这个顺序:docker ps看容器是否运行;ss -lntp看宿主机是否监听端口;curl 127.0.0.1:端口看本机是否可访问;控制台检查安全组;系统检查防火墙。只要按层定位,一般几分钟就能找到具体阻塞点。

6. 如何在修改配置前避免操作失误导致服务中断?

先创建ECS快照,再导出当前容器启动参数与镜像版本。对生产容器不要直接覆盖运行,建议新容器用新端口启动验证后,再切换反向代理。

阿里云国际版 进一步优化:不是必须,但很实用

安全优化

  • SSH禁止全网开放,改为固定办公IP白名单。
  • 阿里云国际版 尽量使用SSH密钥,不要长期保留弱密码。
  • 不要把3306、6379、2375等端口直接暴露公网。
  • 容器镜像固定版本号,不要生产环境长期使用latest。

性能优化

  • 日志目录单独挂载,避免系统盘被容器日志写满。
  • 高并发场景将应用和数据库拆分部署。
  • 静态资源建议交给Nginx或CDN,不要都让应用容器处理。
  • 上线后用top、htop、docker stats观察CPU和内存占用。

成本优化

  • 测试环境从2核2G开始,不必一开始买过高配置。
  • 阿里云国际版 镜像和无用容器定期清理,减少磁盘浪费。
  • 带宽按真实访问量逐步提升,不要预留过大。

稳定性优化

  • 关键应用容器使用--restart always。
  • 变更前做快照,更新镜像前保留旧版本。
  • 正式站点尽快补上HTTPS和域名解析,避免长期裸IP服务。
  • 定期检查磁盘使用率,特别是/var/lib/docker目录。

如果你当前的目标只是“在阿里云国际版ECS上把Docker应用跑起来并让公网能访问”,最短路径就是:创建带公网IP的Linux ECS → 放通22和业务端口 → SSH登录安装Docker → 用docker run -p映射端口启动容器 → 同时检查安全组和系统防火墙。大多数部署失败,都不是Docker本身安装错误,而是网络入口、端口映射或监听地址没有打通。

如果需要更深入咨询了解可以联系全球代理上TG: @cloudcup  他们在云平台领域有更专业的知识和建议,他们有国际阿里云,国际腾讯云,国际华为云,aws亚马逊,谷歌云一级代理的渠道,微软云开户充值。oss防风控上传加密系统。客服1V1服务,支持免实名、免备案、免绑卡。开通即享专属VIP优惠、充值秒到账、官网下单享双重售后支持。
Telegram售前客服
客服ID
@cloudcup
联系
Telegram售后客服
客服ID
@yanhuacloud
联系