对于任何已经运行的容器有此问题的人,并且他们不一定想要重建,下面的命令连接到具有根权限的运行容器:
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
And:
cat dir/file.tar | docker load