更新
Docker
假设容器名称为 abc,
# 停止容器
docker stop abc
# 强制删除 abc 容器
docker rm -f abc
# 备份数据(重要),注意路径
cp -r ~/.abc ~/.abc.archive
# 拉取最新版本
docker pull somehub/abc:latest
# 重新运行容器
docker run -it -d --name abc -p 8090:8090 -v ~/.abc:/root/.abc --restart=unless-stopped somehub/abc:latest
# 删除旧镜像
docker image prune
docker-compose
假设容器名称为 xyz,进入 docker-compose.yml 所在目录,执行:
# 备份数据(重要),注意路径
cp -r xyz xyz.archive
# 拉取 docker-compose
docker-compose pull
# 重启容器
docker-compose up -d
# 删除旧镜像
docker image prune
迁移
将数据从 A 服务器迁移到 B 服务器。
先在 A 服务器上用 tar 命令把备份文件压缩,然后使用 scp 命令把压缩文件传输到 B 服务器。
# 压缩
tar -czvf .abc.tar.gz .abc.archive
# scp -P 端口 -r 压缩文件路径 user@ip:指定目标路径
scp -P 22 -r .abc.tar.gz [email protected]:/root
# 解压
tar -zxvf .abc.tar.gz
#把.abc.archive重命名成.abc
mv .abc.archive .abc
之后正常创建容器即可,用的数据就是传输过来的数据了。
卸载
Docker
/root/data/docker_data/abc 为 docker 数据所在目录
docker ps
docker stop abc
cd ~
docker rm -f abc
rm -rf /root/data/docker_data/abc
docker-compose
/root/data/docker_data/xyz 为 docker-compose.yml 所在目录
cd /root/data/docker_data/xyz
docker-compose down
cd ~
rm -rf /root/data/docker_data/xyz
Docker / docker-compose 本体卸载
Docker:https://docs.docker.com/engine/install/debian/#uninstall-docker-engine
docker-compose:https://docs.docker.com/compose/install/uninstall/
忘记数据挂载的路径怎么办?
假设 Docker 容器名叫做 abc-postgres,执行
docker inspect abc-postgres
Mounts 参数中的 Source 值就是数据被挂载的地方。