skip to content
寻找莉莉丝

Docker 容器的管理

/ 2 min read / 次阅读

更新

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 值就是数据被挂载的地方。