AI是良师益友,跟他学Ubuntu server2604搭建docker环境
还是因为不够强,否则不会失业。
大家好我是大龄程序员码农阿峰。今年47周岁,79年的。我差点失业了,我的linux技能现在好像把我保住了。我的感觉是不够强。所以还要继续学。今天展示一下我跟AI学Ubuntu server2604搭建docker环境。
宠辱不惊,闲看庭前花开花落;去留无意,漫随天外云卷云舒。
附安装过程(附件在这里!
9踩坑与解决记录(本次实测)
| 现象 | 原因 | 处理方式 |
|---|---|---|
新装虚拟机 ssh -p 2222 ... 报 Connection refused / 连接超时 |
系统默认没有 openssh-server,或漏了 systemctl enable ssh 导致重启后服务未启动;ufw 为 active 时也可能拦截 22 |
在 VirtualBox 本地控制台执行 sudo apt install -y openssh-server 与 sudo systemctl enable ssh;ufw 开启时再执行 sudo ufw allow OpenSSH |
服务名写成 sshd 提示 Unit not found |
Ubuntu / Debian 的单元名是 ssh |
改用 sudo systemctl enable ssh / systemctl status ssh |
download.docker.com 返回 000 / 连接被重置 |
当前网络无法直连 Docker 官方下载站 | 改用阿里云 docker-ce 镜像站配置官方仓库,GPG 密钥也从该镜像获取 |
hub.docker.com 不通,但 docker pull 需要拉镜像 |
Registry 访问受阻 | 在 daemon.json 配置多个 registry-mirrors,实测 hello-world、alpine 均拉取成功 |
grep /etc/apt/sources.list 没有输出 |
Ubuntu 26.04 使用 deb822 格式 *.sources |
查看 /etc/apt/sources.list.d/ubuntu.sources,无需修复 |
| 官方仓库是否有 resolute(26.04)的包 | 新系统代号可能尚未同步 | 预检 dists/resolute/stable/binary-amd64/Packages.gz,确认有 29.x 版 docker-ce 后再安装 |
| 加入 docker 组后仍提示 permission denied | 旧会话的用户组缓存未刷新 | 重新登录 SSH,或执行 newgrp docker |
| 浏览器提示证书不安全 | Portainer 9443 使用自签证书 | 本机环境选择继续访问;生产环境可在 UI 的 SSL 设置中换成自有证书 |
| Portainer 初始化提示 token 无效 | 首次设置令牌有时效 | docker restart portainer 后重新取日志中的 setup_token |
| APT 下载 102 MB 耗时约 5 分钟 | 网络速率约 326 kB/s | 属正常,等待即可,勿中断 apt 进程 |
10本次结果快照与脚本清单
| 检查项 | 结果 |
|---|---|
| 操作系统 | Ubuntu 26.04.1 LTS (resolute) x86_64,3.3 Gi 内存 / 25 G 磁盘 |
| SSH 前置(实测) | openssh-server 1:10.2p1-2ubuntu3.8;ssh.service 与 ssh.socket 均 enabled + active,22 端口监听;ufw 为 inactive |
| Docker | 29.7.2(客户端与服务端一致),overlayfs,cgroup systemd,active + enabled |
| 插件 | Compose v5.5.0、buildx 0.36.1、containerd.io 2.3.3 |
| 权限 | afeng124 在 docker 组,新会话免 sudo |
| 镜像加速 | 3 个节点写入 /etc/docker/daemon.json,日志轮转 100m × 3 |
| Portainer | CE 2.45.3 LTS,容器 portainer,卷 portainer_data,restart=always |
| Web UI | https://127.0.0.1:9443(宿主机 HTTP 200,/api/status 返回 2.45.3) |
以下脚本已与本文档放在同一目录 D:\work\2026\ubuntu_2604\,可按需复用:
- install_ssh.sh — 全新虚拟机本地控制台安装并启用 SSH(须在 VirtualBox 窗口内执行,不能经
ssh_run.py下发) - ssh_run.py — 通过口令登录虚拟机并远程执行脚本(支持
--sudo、--file) - probe_vm.sh / probe_sources.sh / probe_repo.sh — 环境、网络、仓库预检
- install_docker.sh / configure_docker.sh / verify_docker.sh / final_check.sh — Docker 安装、配置与验证
- portainer_probe.sh / install_portainer.sh — Portainer 端口预检与部署
用 ssh_run.py 在本目录复现后续流程(口令通过环境变量临时提供,不写入任何文件)。注意:第 0 章的 SSH 安装必须先在虚拟机本地控制台完成,否则下面第一条命令也连不上:
宿主机终端(先进入 D:\work\2026\ubuntu_2604)
VM_PASS='登录口令' python ssh_run.py --file probe_vm.sh
VM_PASS='登录口令' python ssh_run.py --sudo --file install_docker.sh
VM_PASS='登录口令' python ssh_run.py --sudo --file configure_docker.sh
VM_PASS='登录口令' python ssh_run.py --file verify_docker.sh
VM_PASS='登录口令' python ssh_run.py --file install_portainer.sh
文档安全说明:虚拟机登录口令与一次性 setup token 均未写入本文档,请通过交互输入或
docker logs 现场获取。作者:数据酷软件
出处:https://www.cnblogs.com/datacool/p/23645223
关于作者:20年编程从业经验,持续关注工业自动化
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明。
联系方式: qq:71008973;wx:6857740733
CoolCodeTrace · 标签包装追溯系统 (https://gitee.com/afeng124/coolcodetrace)
CoolPrint Service · ZPL 标签打印网关 (https://gitee.com/afeng124/CoolPrintService)











浙公网安备 33010602011771号