在京东云的Linux服务器上安装Docker和宝塔的步骤是什么?

在京东云(JD Cloud)的 Linux 服务器上安装 Docker 和宝塔面板(BT Panel)是常见需求,但需特别注意:Docker 与宝塔面板官方不推荐共存于同一生产环境,尤其当宝塔用于管理网站、数据库等服务时,Docker 容器可能与宝塔的 Nginx/Apache/MySQL 等服务端口、配置或进程产生冲突(如都占用 80/443 端口,或 systemd 服务管理冲突)。不过,若你明确需要两者并存(例如用宝塔做基础运维+Docker 运行特定微服务),可按以下安全、兼容性优先的步骤操作

✅ 前提条件

  • 京东云 ECS 实例(推荐 CentOS 7.9 / Ubuntu 22.04 LTS,64位)
  • 已通过 SSH 登录(如 ssh root@your-ip
  • 系统已更新,具备 root 权限
  • 强烈建议先创建快照备份!

✅ 第一步:系统初始化(推荐执行)

# CentOS 7 示例(Ubuntu 请替换为 apt 命令)
yum update -y
yum install -y curl wget vim tar gzip net-tools lsof

# 关闭 SELinux(宝塔和Docker均兼容性更好)
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
setenforce 0

# 关闭防火墙(或放行必要端口:8888宝塔、2375/2376 Docker API、80/443等)
systemctl stop firewalld
systemctl disable firewalld
# ⚠️ 生产环境建议改用 ufw(Ubuntu)或配置 firewalld 规则,而非直接关闭

✅ 第二步:安装 Docker(推荐使用官方源)

▶ CentOS 7:

# 卸载旧版本(如有)
yum remove -y docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine

# 安装依赖
yum install -y yum-utils device-mapper-persistent-data lvm2

# 添加 Docker 官方 yum 源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# 安装 Docker CE(稳定版)
yum install -y docker-ce docker-ce-cli containerd.io

# 启动并设开机自启
systemctl start docker
systemctl enable docker

# 验证
docker --version
docker run hello-world  # ✅ 成功输出即正常

▶ Ubuntu 22.04:

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

# 添加 Docker GPG 密钥和仓库
mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null

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

systemctl start docker
systemctl enable docker
docker --version

💡 可选优化(提升国内拉取镜像速度):

mkdir -p /etc/docker
cat > /etc/docker/daemon.json <<EOF
{
  "registry-mirrors": ["https://mirror.ccs.tencentyun.com", "https://docker.mirrors.ustc.edu.cn"]
}
EOF
systemctl restart docker

✅ 第三步:安装宝塔面板(官方一键脚本)

🔔 注意:宝塔官网明确说明「不建议与 Docker 共存」,但技术上可行。关键原则:
✅ 宝塔管理宿主机服务(Nginx/Apache/MySQL/FTP)
✅ Docker 仅运行独立容器(避免映射到 80/443,或用反向由宝塔 Nginx 转发)
❌ 不要在宝塔中安装 Docker 插件(老旧且不稳定,禁用!)

▶ 安装宝塔(以最新稳定版 8.x 为例):

# CentOS 7/8/Alibaba Cloud Linux:
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

# Ubuntu/Debian:
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh

# 执行后等待完成(约 2–5 分钟),最后会显示:
# ======================宝塔面板安装成功========================
# 网络面板地址: http://xxx.xxx.xxx.xxx:8888
# 用户名: xxx
# 密码: xxx

⚠️ 首次访问需在京东云控制台【安全组】中放行端口:8888(宝塔)、888(PHPMyAdmin)、80、443、20/21(FTP)等
🔐 强烈建议:登录宝塔后 → 「面板设置」→ 修改默认端口(如 8888 → 8889)、启用 IP 访问限制、开启 SSL。


✅ 第四步:关键配置 —— 避免 Docker 与宝塔冲突(重点!)

冲突点 解决方案
端口占用 ❌ 不要让 Docker 容器直接映射 80:80443:443;✅ 改用非标端口(如 8080, 8443),再通过宝塔 Nginx 反向转发(宝塔 → 网站 → 反向)
MySQL 冲突 ❌ 不要在宝塔中安装 MySQL,同时又用 docker run -p 3306:3306 mysql;✅ 推荐:只用宝塔 MySQL(方便管理)或只用 Docker MySQL(通过内网连接)
Docker 插件 ❌ 宝塔应用商店中的「Docker 管理器」插件已多年未更新,功能残缺且有安全隐患 → 禁止安装!
资源监控 ✅ 宝塔可监控宿主机资源(CPU/内存/磁盘),Docker 容器资源需用 docker statscAdvisor 单独查看

✅ 推荐实践:用宝塔 Nginx 反向 Docker 服务(示例:部署一个 Node.js 应用)

# 1. 启动容器(不暴露 80 端口,仅内部通信)
docker run -d --name my-node-app -p 3000:3000 -v /app/data:/app/data node-app

# 2. 在宝塔中新建网站 → 域名(如 app.example.com)→ 不创建 FTP/数据库 → 提交
# 3. 点击该网站 → 「反向」→ 添加:
#    名称:my-node-app
#    目录:/
#    目标URL:http://127.0.0.1:3000
#    → 保存
# 4. 如需 HTTPS:点击网站 → 「SSL」→ 申请 Let's Encrypt 证书 → 「强制 HTTPS」

✅ 第五步(可选):添加普通用户 + Docker 权限(安全加固)

# 创建用户(避免长期用 root)
useradd -m -s /bin/bash deploy
passwd deploy

# 将用户加入 docker 组(使其可执行 docker 命令,无需 sudo)
usermod -aG docker deploy

# (可选)配置宝塔仅允许指定 IP 登录(面板设置 → IP 访问限制)

⚠️ 重要提醒 & 最佳实践

项目 建议
生产环境 ✅ 推荐「二选一」:
• 场景 A:用宝塔管理全部 Web 服务(简单省心)
• 场景 B:纯 Docker Compose + Portainer(更现代、可移植)
❌ 避免混合管理增加运维复杂度
数据安全 Docker 容器数据务必挂载到宿主机目录(如 /www/wwwroot/docker-app),并纳入宝塔备份计划(或用 rsync 定期同步)
京东云特有 ✅ 开启「云监控」+「云备份」;
✅ 使用「VPC 内网」部署容器间通信(如 Nginx 容器 ←→ PHP 容器);
✅ 安全组最小化开放(仅放行 8888、80、443、22)
升级维护 • 宝塔:后台自动检测升级(建议开启)
• Docker:定期 yum update docker-ce 或手动升级

✅ 验证是否成功

# 1. 宝塔可访问(浏览器打开 http://你的IP:8888)
# 2. Docker 正常运行:
docker ps -a          # 查看容器
docker info | grep "Server Version"  # 查看版本

# 3. 尝试部署一个测试容器并通过宝塔反向访问
docker run -d --name nginx-test -p 8081:80 nginx
# 然后在宝塔中为域名配置反向到 http://127.0.0.1:8081 → 浏览器访问验证

如需进一步帮助,可提供:

  • 你的具体系统版本(cat /etc/os-release
  • 用途场景(如:个人博客 + Docker 运行 ChatGLM?还是企业 SaaS 多容器?)
  • 是否需要自动化脚本(一键安装+配置反代)

我可以为你定制完整 Shell 脚本或 Docker Compose 示例 👇

需要我帮你生成「京东云 + 宝塔 + Docker 反向 + HTTPS」的完整部署脚本吗?