对于已经运行的容器存在此问题并且不一定要重建的任何人,以下命令连接到具有 root 权限的正在运行的容器:
docker exec -ti -u root container_name bash
您还可以使用其 ID 而不是其名称进行连接,方法是通过以下方式找到它:
docker ps -l
要保存您的更改,以便下次启动容器(或 docker-compose 集群)时它们仍然存在 - 请注意,如果您从头开始重建,这些更改将不会重复:
docker commit container_id image_name
要回滚到以前的图像版本(警告:这会删除历史记录而不是追加到末尾,因此要保留对当前图像的引用,请首先使用可选步骤对其进行标记):
docker history image_name
docker tag latest_image_id my_descriptive_tag_name # optional
docker tag desired_history_image_id image_name
要启动未运行的容器并以 root 身份连接:
docker run -ti -u root --entrypoint=/bin/bash image_id_or_name -s
从正在运行的容器中复制:
docker cp <containerId>:/file/path/within/container /host/path/target
要导出图像的副本:
docker save container | gzip > /dir/file.tar.gz
您可以使用以下命令恢复到另一个 Docker 安装:
gzcat /dir/file.tar.gz | docker load
它更快,但需要更多空间来不压缩,使用:
docker save container | dir/file.tar
和:
cat dir/file.tar | docker load