阿里云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
| sudo mkdir -p /etc/docker
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
sudo systemctl daemon-reload sudo systemctl restart docker
|
配置完成后,后续拉取任何Docker镜像,都会自动走国内加速源,无需再单独指定镜像地址。
四、Docker部署Redis
4.1 拉取Redis国内镜像
使用DaoCloud国内镜像,100%可拉取,无需登录,速度最快:
1 2
| 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部署成功
浏览器访问: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
- 检查安全组80端口
- 检查容器运行状态
- 检查防火墙:sudo firewall-cmd –permanent –add-port=80/tcp && sudo firewall-cmd –reload
七、总结
- 解决国内镜像拉取问题:DaoCloud、网易国内镜像源
- 生产环境适配:数据持久化、开机自启、安全密码
- 操作便捷:命令可直接复制执行