admin 管理员组文章数量: 1184232
1. 为什么选择Debian+Docker来搭建你的环境?
如果你手头有一台闲置的电脑,或者租了一台云服务器,想把它变成一个能跑网站、能管理文件、还能轻松管理各种服务的“全能小主机”,那么Debian系统加上Docker容器技术,绝对是你的黄金搭档。我自己折腾过不少系统,从Windows Server到各种Linux发行版,最后发现对于个人开发者或者小团队来说, Debian的稳定 加上 Docker的便捷 ,这个组合用起来最省心。
先说说Debian,它就像一个性格沉稳、做事靠谱的老管家。系统资源占用少,软件包管理(apt)清晰明了,长期维护支持也到位,特别适合7x24小时不间断运行。而Docker呢,你可以把它理解成一个“魔法集装箱”。以前我们要在服务器上装一个软件,比如宝塔面板,得经历下载、解压、安装依赖、配置环境变量等一系列繁琐操作,中间任何一个环节出错都可能前功尽弃。现在有了Docker,你只需要一条命令,它就能把整个软件连同它需要的运行环境,打包成一个“集装箱”(镜像),直接拉过来运行。软件之间互不干扰,想删除也干干净净,不会在系统里留下乱七八糟的垃圾文件。
今天我们要做的,就是在Debian这个“地基”上,用Docker这个“魔法”,快速搭建三个超级实用的“集装箱”: Portainer (一个图形化的Docker管理面板,让你告别命令行)、 宝塔面板 (国人最爱的服务器运维面板,建站、管理数据库一键搞定)、 可道云 (一个私有网盘,可以当成你自己的“百度云”来用)。整个过程,我会把我自己踩过的坑、优化的技巧都揉进去,保证你跟着做,一次就能成功。
2. 准备工作:给你的Debian系统“热身”
在开始施展“魔法”之前,我们得确保“法师”(你的Debian系统)状态良好。这一步看似基础,但非常重要,能避免后面很多莫名其妙的错误。
2.1 系统更新与基础工具安装
首先,用SSH工具(比如PuTTY、Xshell或者Mac的终端)连接到你的Debian服务器。登录后第一件事,就是更新系统的软件包列表并升级已有的软件。这就像去超市前先看看最新的商品目录,确保能买到最新鲜的货。
sudo apt update && sudo apt upgrade -y
这条命令里的
sudo
是获取管理员权限,
apt update
是更新软件源列表,
apt upgrade -y
则是升级所有可升级的软件包,
-y
参数表示对所有的确认提示都自动回答“是”,让过程更自动化。
接下来,安装一些我们后续肯定会用到的基础工具。最典型的就是 Curl ,它是一个命令行工具,用于从网络上下载数据。我们待会儿安装Docker的脚本就需要用它来下载。
sudo apt install -y curl wget vim
这里我多装了
wget
(另一个下载工具)和
vim
(一个强大的文本编辑器)。
vim
可能对新手有点门槛,但学会基本操作(按
i
进入编辑模式,编辑完后按
ESC
再输入
:wq
保存退出)后,在服务器上编辑配置文件会非常方便。如果你实在不习惯,也可以用
nano
编辑器,命令是
sudo apt install -y nano
。
2.2 检查系统与网络环境
在继续之前,最好快速检查一下系统版本和网络连通性。运行
cat /etc/os-release
可以查看详细的系统信息,确认你确实在Debian上。然后可以
ping -c 4 baidu.com
测试一下网络是否通畅,因为接下来我们需要从互联网拉取Docker镜像,网络不好会卡住。
还有一个很多人会忽略的点: 系统时区 。如果服务器时区不对,日志时间全是乱的,排查问题会很头疼。设置时区为上海(中国标准时间)的命令是:
sudo timedatectl set-timezone Asia/Shanghai
设置完后用
date
命令检查一下,显示的时间应该就是你的本地时间了。
3. 一键搞定Docker安装与基础配置
好了,热身完毕,现在开始安装我们的核心工具——Docker。官方提供了一键安装脚本,非常方便,但我们不能无脑运行,得加点“调料”让它更适合国内环境。
3.1 使用国内镜像源加速安装
直接运行官方的
curl -fsSL | bash
命令理论上是可以的,但在国内,从国外源下载速度可能会很慢,甚至失败。所以我们要使用国内镜像源来加速。这里我推荐使用阿里云的镜像。
在终端中输入以下命令:
curl -fsSL | bash -s docker --mirror Aliyun
这条命令的意思是:使用Curl工具从
get.docker.com
获取安装脚本,然后通过管道
|
传递给
bash
执行。
-s docker --mirror Aliyun
这个参数就是告诉安装脚本,使用阿里云的镜像源来下载Docker安装包。
脚本运行起来后,它会自动执行一系列操作:添加Docker的官方GPG密钥、设置稳定的软件仓库、安装Docker引擎及其相关组件。整个过程完全自动化,你只需要泡杯茶等待几分钟。安装成功后,你会看到提示信息。
3.2 验证安装与配置镜像加速
安装完,我们先不急着启动,来验证一下是否安装成功,并做两个重要配置。
首先,将当前用户加入
docker
用户组。这样以后运行Docker命令就不需要每次都加
sudo
了,更安全也更方便。
sudo usermod -aG docker $USER
注意 :执行这个命令后,你需要 完全退出当前的SSH会话,然后重新登录 ,这个用户组变更才会生效。你可以直接关闭终端再重新连接。
重新登录后,运行一个最简单的命令来测试:
docker --version
如果能看到类似
Docker version 24.0.7, build afdd53b
的版本信息,恭喜你,Docker引擎安装成功了。
接下来是一个 超级重要的优化步骤 :配置Docker镜像加速器。Docker默认是从Docker Hub拉取镜像,这在国外很快,但在国内可能慢如蜗牛。我们需要给它配置一个国内的镜像地址,比如阿里云、腾讯云、网易云等都提供免费的加速服务。这里以阿里云为例(你需要有一个阿里云账号)。
- 访问阿里云官网,登录后进入“容器镜像服务”控制台。
-
在左侧菜单找到“镜像加速器”,你会看到一个专属的加速器地址,格式像
。 -
在你的Debian服务器上,创建或修改Docker的配置文件:
sudo vim /etc/docker/daemon.json -
将以下内容写入这个文件(请替换
为你自己阿里云控制台提供的地址):
如果你想配置多个加速器,可以这样写:{ "registry-mirrors": [""] }["地址1", "地址2"]。 -
保存退出后,重启Docker服务使配置生效:
sudo systemctl daemon-reload sudo systemctl restart docker
配置完成后,你可以运行
docker info
,在输出信息的末尾,如果看到
Registry Mirrors
下面有你配置的地址,就说明加速器生效了。以后你拉取任何镜像,速度都会飞起。
4. 部署Portainer:给Docker装上“可视化方向盘”
Docker本身是命令行操作的,虽然很酷,但记命令、看日志总归不够直观。 Portainer 就是一个轻量级的Docker图形化管理界面,有了它,你几乎可以不用再敲复杂的Docker命令,通过点点鼠标就能管理容器、镜像、网络和卷。
4.1 一条命令拉起Portainer容器
部署Portainer简单到令人发指,只需要一条
docker run
命令。这条命令我拆解开给你讲讲:
docker run -d \
--restart=always \
--name portainer \
-p 9000:9000 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:latest
docker run -d:运行一个容器,-d表示在后台运行(守护进程模式)。--restart=always:这是我最喜欢的一个参数。它表示无论容器因何原因退出(除非你手动停止),Docker都会自动重新启动它。对于像Portainer、宝塔这类需要持续在线的服务,加上这个参数能省去很多运维麻烦。--name portainer:给这个容器起个名字,方便后续管理,比如docker stop portainer。-p 9000:9000:端口映射。把容器内部的9000端口映射到宿主机的9000端口。这样你访问服务器的IP:9000就能打开Portainer的Web界面了。-v /var/run/docker.sock:/var/run/docker.sock:这是 关键的一步 。docker.sock是Docker守护进程的通信接口,把这个文件挂载到容器内,Portainer才能有权限与宿主机的Docker引擎通信,从而管理其他容器。你可以把它理解为给Portainer授予了“管理员钥匙”。-v portainer_data:/data:数据卷挂载。这里创建了一个名为portainer_data的Docker卷,并挂载到容器的/data目录。Portainer的所有配置数据(比如你设置的账号、管理的端点信息)都会保存在这个卷里。即使你删除了Portainer容器,只要这个卷还在,重新部署后数据依然能恢复。 使用命名卷(portainer_data)比直接挂载主机目录(如-v /opt/portainer/data:/data)更推荐,因为管理起来更干净,由Docker自动处理路径和权限。portainer/portainer-ce:latest:指定要运行的镜像。我们用的是Portainer社区版(CE)。
把上面这条完整的命令复制到你的终端执行即可。执行后,用
docker ps
命令查看,应该能看到一个名为
portainer
的容器正在运行。
4.2 初始化Portainer与基本使用
现在,打开你的浏览器,输入
。第一次访问,你需要创建一个管理员账号,设置用户名和密码。
接下来会让你选择连接的环境。我们是要管理“本地的Docker环境”,所以选择 “Local” ,然后点击“Connect”。
恭喜!你已经进入了Portainer的主界面。左侧是菜单栏,在这里你可以:
- Dashboard(仪表盘) :一目了然地看到所有容器、镜像、卷的状态。
- Containers(容器) :列表形式展示所有容器,可以在这里轻松启动、停止、重启、删除容器,或者查看日志、进入容器终端。
- Images(镜像) :管理所有拉取到本地的镜像,可以搜索、拉取新镜像,或者删除旧的。
- Volumes(卷) & Networks(网络) :管理数据卷和网络,这些是容器持久化存储和通信的基础。
有了Portainer,后面部署宝塔和可道云,你甚至可以不敲命令,直接在它的“Containers”页面点击“Add container”,然后填填表单就能搞定。不过,为了让你更深入理解,我们接下来还是用命令行的方式,这能让你更清楚每个参数的意义。
5. 部署宝塔面板:打造全能服务器运维中心
宝塔面板在国内开发者中知名度极高,它把复杂的服务器运维(网站部署、FTP、数据库、防火墙、监控等)都做成了简单的图形化操作。用Docker来跑宝塔,可以实现环境隔离,并且迁移、备份都特别方便。
5.1 拉取与运行宝塔Docker镜像
这里我们使用一个社区维护的、口碑不错的宝塔镜像。运行以下命令:
docker run -tid \
--name baota \
--restart unless-stopped \
-p 21:21 \
-p 80:80 \
-p 443:443 \
-p 888:888 \
-p 3306:3306 \
-p 8888:8888 \
-v /home/docker/bt/www:/www/wwwroot \
-v /home/docker/bt/vhost:/www/server/panel/vhost \
-v /home/docker/bt/mysql:/www/server/data \
-v /home/docker/bt/backup:/www/backup \
yiwanlingyi/baota_back:lnmp-amd64
这条命令参数比较多,我详细解释一下:
-tid:这是-t -i -d的合并。-t分配一个伪终端,-i保持标准输入打开,-d后台运行。对于宝塔这种需要交互和后台服务的容器,这样组合比较合适。--restart unless-stopped:和always类似,也是自动重启,区别在于如果容器是被你手动执行docker stop停止的,它就不会自动重启。-
端口映射群
:这里映射了多个端口,每个端口对应宝塔的一项服务。你可以根据自己需要删减。比如你暂时不用FTP,就可以去掉
-p 21:21。-p 80:80:HTTP网站服务。-p 443:443:HTTPS(加密)网站服务。-p 888:888:phpMyAdmin(数据库管理工具)端口。-p 3306:3306:MySQL数据库服务端口。-p 8888:8888: 宝塔面板本身的Web管理端口 ,最重要!
-
目录挂载(关键!)
:这是Docker部署宝塔的精华所在。我们把容器内重要的数据目录,都挂载到宿主机的特定路径上。这样做的好处是:
- 数据持久化 :即使容器被删除,你的网站文件、数据库、配置文件都安全地留在宿主机上。
-
方便备份
:直接备份宿主机上的
/home/docker/bt目录就行了。 - 便于管理 :你可以用熟悉的工具(如SFTP)直接管理宿主机上的网站文件。
-v /home/docker/bt/www:/www/wwwroot:网站根目录。-v /home/docker/bt/vhost:/www/server/panel/vhost:网站配置文件目录。-v /home/docker/bt/mysql:/www/server/data:MySQL数据库文件目录。-v /home/docker/bt/backup:/www/backup:宝塔的备份目录。 请注意 :/home/docker/bt这个宿主机路径是我示例用的,你可以改成任何你喜欢的、有写入权限的路径。 务必确保这些目录在宿主机上存在 ,如果不存在,Docker会自动创建,但有时权限可能不对,所以最好手动先创建好:sudo mkdir -p /home/docker/bt/{www,vhost,mysql,backup}。
5.2 初始化宝塔面板并获取登录信息
容器运行后,它内部的宝塔服务可能还没启动。我们需要进入容器手动启动一下,并获取默认的登录账号密码。
启动宝塔服务 :
docker exec -it baota /etc/init.d/bt startdocker exec -it baota是进入名为baota的容器内部执行命令。后面跟着的就是在容器内启动宝塔服务的命令。获取默认登录信息 :
docker exec -it baota /etc/init.d/bt default执行这条命令,终端会打印出宝塔面板的登录地址、用户名和默认密码。请务必 立即复制保存 !输出信息通常类似:
================================================================== Bt-Panel: username: xxxxxx password: xxxxxx ==================================================================注意,这里的地址可能是内网IP。你实际访问时,需要在浏览器输入
。登录与安全设置 : 用上一步获取的信息登录宝塔面板。首次登录,它会推荐你安装LNMP或LAMP套件(即Nginx/Apache、MySQL、PHP)。你可以根据自己建站的需要选择安装,这个过程比较耗时,让它自己慢慢装就行。 强烈建议 :登录后第一件事,去面板设置里做以下操作:
- 修改面板密码 :把默认密码改成你自己设定的强密码。
-
修改面板端口
:8888是默认端口,容易被扫描。建议在“面板设置”里修改成一个不常用的高端口号(如
35897),修改后记得在防火墙和安全组中放行新端口,并重启面板服务。 -
绑定域名和开启SSL
:如果你有域名,可以为面板绑定一个域名并申请SSL证书,这样就能通过
的安全方式访问了。
现在,你就拥有了一个功能强大的图形化服务器管理后台。建站、部署SSL证书、管理数据库、设置定时任务,都可以在这里轻松完成。
6. 部署可道云:搭建你的私有云盘
最后一个“集装箱”,我们部署 可道云(KodExplorer) 。它是一个基于Web的文件管理器,功能堪比网盘,你可以用它来在线管理服务器上的文件,预览文档、图片、视频,甚至在线编辑代码。把它部署在本地或内网,传输速度极快,而且完全私密,不用担心隐私问题。
6.1 快速部署可道云容器
部署可道云的命令非常简洁:
docker run -d \
--name kodexplorer \
-p 58989:80 \
-v /home/docker/kodcloud:/var/www/html \
--restart=always \
kodcloud/kodexplorer:latest
-p 58989:80:将容器内的80端口映射到宿主机的58989端口。你可以把58989改成任何未被占用的端口。-v /home/docker/kodcloud:/var/www/html:这是核心!把容器内可道云的程序和数据目录/var/www/html,挂载到宿主机的/home/docker/kodcloud目录。这样,你上传到可道云的所有文件,实际上都存储在宿主机这个路径下,容器重建也不会丢失数据。同样,请确保宿主机目录存在:sudo mkdir -p /home/docker/kodcloud。kodcloud/kodexplorer:latest:这是可道云官方维护的Docker镜像。
执行命令后,等待十几秒,让容器完全启动。然后在浏览器访问
。
6.2 初始化与使用指南
首次访问,会进入可道云的初始化页面。你需要设置一个管理员密码。设置完成后,就进入了可道云的主界面。
它的界面非常直观,左侧是目录树,右侧是文件列表。你可以:
- 上传/下载文件 :直接拖拽文件到浏览器窗口即可上传,下载也很方便。
- 在线预览 :支持图片、音乐、视频、PDF、Office文档等多种格式的在线预览,无需下载。
-
在线编辑
:对于文本文件、代码文件(如
.txt,.html,.js,.py),可以直接在线编辑并保存。 - 分享文件 :可以生成文件或文件夹的外链,设置密码和有效期,方便临时分享给他人。
- 用户管理 :在“设置”中,你可以创建多个用户,并为他们分配不同目录的权限,适合小团队协作。
一个实用技巧
:你可能会想,能不能把可道云挂载的目录,指向宝塔面板的网站目录(比如
/home/docker/bt/www
)?这样不就能用可道云直接管理网站文件了吗?答案是
可以,但要小心
。你可以在部署可道云时,将
-v
参数改为
-v /home/docker/bt/www:/var/www/html/data/User/admin/home/你的网站文件夹
。但更稳妥的做法是,在可道云内部使用“外部存储”功能,添加一个指向宿主机目录的链接,这样权限管理更清晰,避免误操作。
7. 进阶管理与故障排查心得
三个核心容器都跑起来了,但要让这个环境长期稳定运行,还需要一些进阶的管理知识和排错能力。这部分是我自己踩坑后总结的干货。
7.1 容器日常运维命令备忘
虽然有了Portainer,但掌握一些基础命令在关键时刻能救急。这里列一个最常用的清单:
-
查看容器状态
:
docker ps:查看正在运行的容器。docker ps -a:查看所有容器(包括已停止的)。
-
管理容器生命周期
:
docker start <容器名或ID>:启动已停止的容器。docker stop <容器名或ID>:停止运行中的容器(发送SIGTERM信号,允许优雅关闭)。docker restart <容器名或ID>:重启容器。docker rm <容器名或ID>:删除已停止的容器。加-f可以强制删除运行中的容器(不推荐)。
-
查看日志与进入容器
:
docker logs -f <容器名>:实时查看容器的日志输出,排查问题神器。-f是跟随(follow)模式。docker exec -it <容器名> /bin/bash:以交互模式进入容器内部,就像登录一台小Linux。想修改宝塔面板的某个配置文件,或者看看可道云内部结构,就用这个命令。
-
管理镜像与数据卷
:
docker images:列出本地所有镜像。docker rmi <镜像ID>:删除不再使用的镜像,节省空间。docker volume ls:列出所有数据卷。docker volume rm <卷名>:删除数据卷( 危险!会删除数据! )
7.2 常见问题与解决方案
容器启动失败,提示“端口被占用” : 这是最常见的问题。比如你之前运行过宝塔,没删干净,再次运行就会提示
8888端口被占用。用sudo netstat -tlnp | grep :8888查看是哪个进程占用了端口,然后停止它,或者修改新容器的映射端口(如-p 8889:8888)。访问宝塔或可道云,页面打不开 :
-
检查防火墙
:Debian可能自带了
ufw防火墙。确保你映射的端口(如8888, 58989)已经放行:sudo ufw allow 8888。云服务器(如阿里云、腾讯云)还需要在控制台的安全组规则中放行相应端口。 -
检查容器是否运行
:
docker ps看看容器状态是不是Up。 -
查看容器日志
:
docker logs baota或docker logs kodexplorer,看有没有启动错误信息。
-
检查防火墙
:Debian可能自带了
宝塔面板内安装软件(如Nginx)速度慢或失败 : 这是因为宝塔容器内部使用的软件源可能也是国外的。解决办法是进入宝塔容器:
docker exec -it baota bash,然后修改容器内的软件源为国内源(如清华源、阿里源)。具体修改/etc/apt/sources.list文件的方法,和修改宿主机Debian源类似。如何备份和迁移整个环境? 这是Docker的最大优势之一。
-
备份
:你只需要备份两个东西:1) 所有容器的启动命令(可以写成
docker-compose.yml文件,这是更高级的用法);2) 你在宿主机上挂载的数据目录(如/home/docker)。把这两个打包,就是完整的备份。 - 迁移 :在新服务器上安装好Docker,恢复数据目录到相同路径,然后用备份的启动命令重新运行容器,一切就都回来了。
-
备份
:你只需要备份两个东西:1) 所有容器的启动命令(可以写成
宿主机磁盘空间不足怎么办? Docker运行久了,会产生很多无用的镜像层、停止的容器、构建缓存,占用大量空间。定期清理是个好习惯:
# 删除所有已停止的容器 docker container prune # 删除所有未被使用的镜像(谨慎,确保镜像真的没用) docker image prune -a # 删除所有未被使用的数据卷(非常谨慎!会删除数据!) # docker volume prune
最后,我想说,这套组合拳打下来,你的Debian服务器就已经从一个“黑乎乎的终端”变成了一个拥有图形化运维面板、私有云盘和强大Web服务能力的生产环境。整个过程,从系统准备到三个容器上线,顺利的话半小时内就能完成。最重要的是,你通过这次实践,不仅得到了一个可用的环境,更理解了Docker“一次构建,到处运行”的精髓。以后无论换服务器,还是部署新的应用,你都可以从容地用Docker来搞定,这才是最大的收获。我自己在项目中也越来越依赖这种容器化的部署方式,它让环境的一致性得到了保证,再也不用说“在我电脑上是好的”这种话了。
版权声明:本文标题:「一键开启高效云计算之旅」: Debian系统下Docker部署实战指南,全面覆盖从安装到使用Portainer、宝塔、可道云的全过程。 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1771424619a3544464.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论