一、安装 Docker (Ubuntu 22.04)
1. 安装依赖
1 2
| sudo apt update sudo apt install ca-certificates curl -y
|
2. 添加 Docker 软件源(清华镜像)
1 2 3 4 5 6 7 8 9
| sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
3. 安装 Docker
1 2 3 4 5
| sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
|
4. 启动并配置
1 2 3 4 5 6 7
| sudo systemctl start docker sudo systemctl enable docker
sudo usermod -aG docker $USER newgrp docker
|
5. 配置镜像加速器(可选,但强烈推荐)
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<EOF { "registry-mirrors": [ "https://docker.mirrors.tuna.tsinghua.edu.cn", "https://docker.m.daocloud.io" ] } EOF
sudo systemctl daemon-reload sudo systemctl restart docker
|
6. 验证安装
1 2 3
| docker --version docker compose version docker run hello-world
|
看到 Hello from Docker! 即表示安装成功。
二、安装 Docker 可视化管理界面 (Portainer)
1. 存储卷(Volume)操作
存储卷是 Docker 用来保存数据的“硬盘”,即使更新或重建容器,数据也不会丢失。
1 2 3 4 5 6 7 8
| docker volume ls
docker volume create my_data
docker volume inspect my_data
|
2. 安装 Portainer
1
| docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce
|
- 访问地址:
http://192.168.5.14:9000
- 通过浏览器访问使用图形化管理工具
3. 注册 Portainer
1 2 3 4 5
| sudo docker restart portainer
sudo docker logs portainer 2>&1 | grep "setup_token=" | tail -1
|
用新令牌在网页上继续初始化即可。
三、部署 Nextcloud 个人网盘
1. 在 Portainer 中创建容器
姓名图片输入一样的即可
- 端口映射:主机
8080 → 容器 80
- 数据持久化:
/var/www/html → /home/guzihan/Downloads/NextCloud
- 重启策略:选择
always2. 更新 DNS 配置
访问 ip:9000,修改 config/config.php,添加完成后重启即可。
四、Nextcloud 文件同步管理
1. 手动执行文件扫描
如果新文件未在网页端显示,需要进入容器执行扫描。
1 2 3 4 5 6 7 8 9
| sudo docker exec -it nextcloud bash
php occ files:scan --all
exit
|
2. 添加自动扫描任务(一劳永逸)
如果不想每次手动扫描,可以设置定时任务让 Nextcloud 自动扫描。
1 2 3 4 5 6 7
| sudo docker exec -it nextcloud bash
apt-get update && apt-get install -y cron echo "*/5 * * * * php /var/www/html/occ files:scan --all" | crontab - service cron start
|
这样设置后,系统会每 5 分钟自动扫描一次,新文件会在 5 分钟内同步到网页端。
五、权限修复
Nextcloud 无法删除文件(宿主机直接复制文件)
1 2 3 4 5 6 7
| sudo docker exec -it nextcloud-app-1 bash ls -la /var/www/html/data/
chown -R www-data:www-data /var/www/html/data exit
|
六、常用命令速查
| 用途 |
命令 |
| 查看容器状态 |
docker ps |
| 进入容器终端 |
sudo docker exec -it <容器名> bash |
| 查看容器日志 |
docker logs <容器名> |
| 重启容器 |
docker restart <容器名> |
| 查看所有卷 |
docker volume ls |
| 查看卷详情 |
docker volume inspect <卷名> |
| 停止容器 |
docker stop <容器名> |
| 删除容器 |
docker rm <容器名> |
| 删除卷 |
docker volume rm <卷名> |