# Docker相关 ## 安装 ``` # 添加 Docker 官方 GPG 密钥 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg # 添加 Docker 仓库 echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null # 安装 Docker sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io # 验证 $ docker version 29.5.2 $ docker compose version v5.1.4 ``` sudo vim /etc/docker/daemon.json ``` { "registry-mirrors": [ "https://docker.1ms.run", "https://docker-0.unsee.tech", "https://docker.m.daocloud.io" ], "live-restore": true, "features": { "buildkit": true } } ``` ### 将当前用户加入 docker 组 这是最推荐的方法,加入后无需每次使用 `sudo`: ``` # 1. 将当前用户加入 docker 组 sudo usermod -aG docker $USER # 2. 刷新组权限(或者完全退出终端并重新登录) newgrp docker ``` ## 使用 ``` Docker相关: 给当前用户增加 docker 运行权限 sudo usermod -aG docker $USER newgrp docker SaaS镜像发布:submit- 然后远程 docker load -i my*.tar 重启容器 docker compose logs coze-server --tail 10 | grep -i "error" 查错 docker logs container_name | grep -C 20 "error" 查错误日志前后 20 行内的内容 docker compose exec -it ? /bin/sh 或 /bin/bash 进入容器执行命令 docker image prune -a 删除所有未使用的镜像 docker rmi $(docker images -q) 删除所有镜像 删除所有容器 docker stop $(docker ps -q) ; docker rm $(docker ps -q) doker pull coleifer/sqlite-web:latest 拉镜像 docker save coleifer/sqlite-web:latest -o sqlite_web_latest.tar 保存镜像,上传 docker load -i sqlite_web_latest.tar 服务器加载镜像 - 清空日志: docker compose logs --no-log-prefix > /dev/null 2>&1 && truncate -s 0 $(docker inspect --format='{{.LogPath}}' $(docker compose ps -q)) ``` - 重启所有服务:`docker compose restart` - 只重启网关服务:`docker compose restart hermes` - 查看所有服务实时日志:`docker compose logs -f` - 升级到最新镜像版本:`docker compose pull && docker compose up -d` - 停止所有服务:`docker compose down` 启动指定生产环境 docker compose -f docker-compose.prod.yml ps