Din*_*ddy 82 containers docker docker-registry
我找不到将docker运行容器从一个主机移动到另一个主机的方法.
有没有什么方法可以将我的容器推送到存储库,就像我们为图像做的那样?目前,我没有使用数据卷来存储与容器内运行的应用程序相关联的数据.所以有些数据驻留在容器中,我想在重新设计设置之前保留这些容器.
aho*_*olt 86
或者,如果您不希望推送到存储库:
docker export <CONTAINER ID> > /home/export.tar
Run Code Online (Sandbox Code Playgroud)
cat /home/export.tar | docker import - some-name:latest
Run Code Online (Sandbox Code Playgroud)
lar*_*sks 43
您无法将正在运行的docker容器从一个主机移动到另一个主机.
您可以将容器中的更改提交到映像docker commit,将映像移动到新主机上,然后使用启动新容器docker run.这将保留应用程序在容器内创建的所有数据.
Nb:它不保存存储在卷内的数据; 您需要手动将数据卷移动到新主机.
Ale*_*vić 20
经过多次令人困惑的手册和令人困惑的教程,最终对我有用的是,因为Docker显然是在我写作时看到了夸大的期望,是:
docker save image_name > image_name.tar cat image_name.tar | docker load如另一个答案中所建议的,导出和导入不会导出容器运行所需的端口和变量.你最终可能会遇到"没有指定命令"等等...当你试图在另一台机器上加载它时.
因此,保存和导出之间的区别在于save命令使用历史记录和元数据保存整个图像,而export命令仅导出文件结构(没有历史记录或元数据).
小智 17
从Docker文档:
docker export不导出与容器关联的卷的内容.如果卷安装在容器中现有目录的顶部,docker export则将导出基础 目录的内容,而不是卷的内容. 有关导出卷中数据的示例,请参阅用户指南中的备份,还原或迁移数据卷.
其他外部工具:为了移动容器及其关联的数据量,您可以使用Flocker https://clusterhq.com/flocker/introduction/
Ric*_*nco 11
使用这个脚本:https : //github.com/ricardobranco777/docker-volumes.sh
这确实保留了卷中的数据。
用法示例:
# Stop the container
docker stop $CONTAINER
# Create a new image
docker commit $CONTAINER $CONTAINER
# Save image
docker save -o $CONTAINER.tar $CONTAINER
# Save the volumes (use ".tar.gz" if you want compression)
docker-volumes.sh $CONTAINER save $CONTAINER-volumes.tar
# Copy image and volumes to another host
scp $CONTAINER.tar $CONTAINER-volumes.tar $USER@$HOST:
# On the other host:
docker load -i $CONTAINER.tar
docker create --name $CONTAINER [<PREVIOUS CONTAINER OPTIONS>] $CONTAINER
# Load the volumes
docker-volumes.sh $CONTAINER load $CONTAINER-volumes.tar
# Start container
docker start $CONTAINER
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
88381 次 |
| 最近记录: |