阿里云ECS(国内)Docker部署Redis+Nginx完整文档

一、文档说明

本文档适配阿里云国内ECS服务器,已提前部署Docker环境,重点解决国内Docker拉取官方镜像慢、失败的问题,提供Redis(带安全配置、数据持久化、开机自启)和Nginx(带配置挂载、日志持久化、开机自启)的完整部署流程,所有命令可直接复制粘贴执行,生产环境可直接复用。

核心优势:采用国内可靠公共镜像(DaoCloud、网易),无需额外配置复杂环境,全程命令行操作,步骤清晰,解决国内镜像拉取痛点。

二、前置准备

  • 环境:阿里云国内ECS服务器(CentOS/Ubuntu均可),已安装Docker。
  • 权限:执行命令时需具备sudo权限(或直接使用root用户)。
  • 工具:Xshell、Putty等SSH连接工具,用于连接ECS服务器执行命令。
  • 安全:提前准备阿里云ECS安全组配置权限(后续需开放对应端口)。

三、Docker国内镜像加速配置(一劳永逸)

为解决所有Docker镜像(包括Redis、Nginx)拉取慢、失败的问题,先配置国内镜像加速,优先使用DaoCloud、网易镜像源,稳定性最高。

3.1 执行配置命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 1. 创建Docker配置文件夹(若不存在)
sudo mkdir -p /etc/docker

# 2. 写入国内镜像加速地址(多源备用,避免单一源失效)
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com"
]
}
EOF

# 3. 重启Docker,使配置生效
sudo systemctl daemon-reload
sudo systemctl restart docker

配置完成后,后续拉取任何Docker镜像,都会自动走国内加速源,无需再单独指定镜像地址。

四、Docker部署Redis

4.1 拉取Redis国内镜像

使用DaoCloud国内镜像,100%可拉取,无需登录,速度最快:

1
2
# 拉取最新稳定版Redis
docker pull docker.m.daocloud.io/library/redis

4.2 创建Redis持久化目录

1
2
sudo mkdir -p /docker/redis/conf
sudo mkdir -p /docker/redis/data

4.3 配置Redis安全及性能参数

1
sudo vim /docker/redis/conf/redis.conf

复制以下配置(建议修改密码):

1
2
3
4
5
6
bind 0.0.0.0
protected-mode no
requirepass 123456
appendonly yes
loglevel notice
timeout 300

4.4 启动Redis容器

1
2
3
4
5
6
7
8
docker run -d \
--name redis \
--restart=always \
-p 6379:6379 \
-v /docker/redis/conf/redis.conf:/etc/redis/redis.conf \
-v /docker/redis/data:/data \
docker.m.daocloud.io/library/redis \
redis-server /etc/redis/redis.conf

4.5 验证Redis部署成功

1
2
3
4
5
docker ps | grep redis
docker exec -it redis redis-cli
AUTH 123456
set test hello
get test

4.6 阿里云ECS安全组配置

开放6379端口:登录ECS控制台 → 安全组 → 配置规则 → 入方向添加6379/6379

4.7 Redis常用管理命令

1
2
3
4
5
docker stop redis
docker start redis
docker restart redis
docker rm redis
docker logs redis

五、Docker部署Nginx

5.1 拉取Nginx国内镜像

1
docker pull docker.m.daocloud.io/library/nginx

5.2 创建Nginx持久化目录

1
2
3
4
sudo mkdir -p /docker/nginx/conf.d
sudo mkdir -p /docker/nginx/html
sudo mkdir -p /docker/nginx/logs
sudo mkdir -p /docker/nginx/conf

5.3 复制Nginx官方默认配置

1
2
3
4
docker run -d --name tmp-nginx docker.m.daocloud.io/library/nginx
docker cp tmp-nginx:/etc/nginx/nginx.conf /docker/nginx/conf/nginx.conf
docker cp tmp-nginx:/etc/nginx/conf.d/default.conf /docker/nginx/conf.d/
docker rm -f tmp-nginx

5.4 创建测试页面

1
echo "<h1>Nginx部署成功(阿里云ECS+Docker)</h1>" > /docker/nginx/html/index.html

5.5 启动Nginx容器

1
2
3
4
5
6
7
8
9
docker run -d \
--name nginx \
--restart=always \
-p 80:80 \
-v /docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /docker/nginx/conf.d:/etc/nginx/conf.d \
-v /docker/nginx/html:/usr/share/nginx/html \
-v /docker/nginx/logs:/var/log/nginx \
docker.m.daocloud.io/library/nginx

5.6 验证Nginx部署成功

1
docker ps | grep nginx

浏览器访问:http://ECS公网IP

5.7 阿里云ECS安全组配置

开放80端口:安全组 → 入方向 → 80/80 → 0.0.0.0/0

5.8 Nginx常用管理命令

1
2
3
4
5
docker stop nginx
docker start nginx
docker restart nginx
docker rm nginx
docker logs nginx

六、常见问题解决

6.1 镜像拉取失败

重新执行镜像加速配置,重启Docker后重试。

6.2 容器启动失败

使用docker logs查看日志:

  • 配置文件错误
  • 端口占用
  • 目录权限:sudo chmod -R 777 /docker

6.3 浏览器无法访问Nginx

  1. 检查安全组80端口
  2. 检查容器运行状态
  3. 检查防火墙:sudo firewall-cmd –permanent –add-port=80/tcp && sudo firewall-cmd –reload

七、总结

  • 解决国内镜像拉取问题:DaoCloud、网易国内镜像源
  • 生产环境适配:数据持久化、开机自启、安全密码
  • 操作便捷:命令可直接复制执行