1️⃣ 安装 docker.io(不走外网 Docker 域名)
lua
sudo apt update
sudo apt install -y docker.io
这一步用的是 Ubuntu 官方仓库
不会访问 download.docker.com
2️⃣ 启动并设置开机自启
bash
sudo systemctl start docker
sudo systemctl enable docker
3️⃣ 验证 Docker 是否安装成功
css
docker --version
只要能看到版本号,说明 Docker 已经 OK。
👉 把 Docker 的数据目录迁移到你指定的位置
一、确认你要用的磁盘目录(假设用 /data)
如果你已经有 /data,先看一下:
bash
df -h
ls /data
如果没有:
bash
sudo mkdir -p /data
二、迁移 Docker 数据目录到 /data/docker(重点)
⚠️ 这一步一定要在 还没跑任何容器 前做
你现在正好是最佳时机
1️⃣ 同时停止 docker.service 和 docker.socket
arduino
sudo systemctl stop docker
sudo systemctl stop docker.socket
2️⃣ 确认 Docker 已完全停止(可选验证)
perl
ps -ef | grep dockerd | grep -v grep
如果没有任何输出,说明 Docker 已彻底停干净 ✅
2️⃣ 创建新目录
bash
sudo mkdir -p /data/docker
3️⃣ 配置 Docker 使用新目录
bash
sudo nano /etc/docker/daemon.json
写入以下内容(完整覆盖):
json
{
"data-root": "/data/docker"
}
保存退出。
4️⃣ 启动 Docker
sql
sudo systemctl start docker
5️⃣ 验证是否生效(非常重要)
perl
docker info | grep "Docker Root Dir"
你应该看到:
javascript
Docker Root Dir: /data/docker
看到这行,说明安装位置调整成功 ✅
1️⃣ 把当前用户加入 docker 组
bash
sudo usermod -aG docker $USER
2️⃣ 退出 SSH 会话,然后重新登录
或者直接执行:
newgrp docker
让当前终端 session 立即生效
3️⃣ 再次验证 Docker Root Dir
perl
docker info | grep "Docker Root Dir"
正确输出示例:
javascript
Docker Root Dir: /data/docker
4️⃣ 后续操作就可以不用 sudo
- 拉镜像
- 启动 MySQL 容器
- 管理容器
都可以直接用 docker 命令,不用加 sudo。
一、查看 Docker 服务状态(systemd 管理)
lua
sudo systemctl status docker
输出示例:
yaml
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2025-12-19 10:45:00 CST; 5min ago
Active: active (running)→ Docker 正在运行 ✅Active: inactive (dead)→ Docker 没有运行 ❌
相关命令
- 启动 Docker:
sql
sudo systemctl start docker
- 停止 Docker:
arduino
sudo systemctl stop docker
-
重启 Docker:
sudo systemctl restart docker
-
设置开机自启:
bash
sudo systemctl enable docker
二、查看 Docker 容器运行状态
1️⃣ 查看所有运行中的容器
docker ps
输出示例:
bash
CONTAINER ID IMAGE COMMAND STATUS PORTS NAMES
a1b2c3d4e5f6 mysql:8.0 "docker-entrypoint.s..." Up 2 minutes 0.0.0.0:3306->3306/tcp mysql8
STATUS→ 容器运行状态(Up / Exited)PORTS→ 映射端口NAMES→ 容器名字
2️⃣ 查看所有容器(包括停止的)
css
docker ps -a
- 可以看到已退出或报错的容器
- 如果 MySQL 容器
STATUS显示Exited,说明启动失败,需要检查日志
3️⃣ 查看容器日志
docker logs mysql8
- 查看 MySQL 容器的启动输出
- 可以快速定位密码错误、数据目录权限问题等
4️⃣ 进入容器内部(MySQL 测试 / 操作)
bash
docker exec -it mysql8 bash
然后可以直接使用 MySQL:
css
mysql -uroot -p
三、查看 Docker 使用的资源
docker info
重点看:
Docker Root Dir→ 数据目录Containers→ 当前容器数量Images→ 镜像数量Server Version→ Docker 版本