由于一个应用有好几个 images,我希望带上 docker 内部的配置,完整迁徙到另外一台 VPS, 最好是断网的情况下也可以部署起来(镜像复制过去的情况下)
我目前直接docker save -o 名称.tar AAA:8.2 BBB:5.6打包了
然后docker load -i 包名称.tar直接导入到新的 VPS.
目前是这个结果,似乎不行哈,难道我得一条一条命令启动吗?有啥无脑把 docker 应用搬家的办法吗?
感谢
root@HE1C3GBF2:~# docker ps -a
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
root@HE1C3GBF2:~# docker images
REPOSITORY                            TAG          IMAGE ID       CREATED       SIZE
domain-redirect-docker-master-web     latest       f8c6b6036a7d   3 hours ago   1.28GB
domain-redirect-docker-master-nginx   latest       0a8aeeb3e4ba   3 hours ago   142MB
mysql                                 latest       a3a2968869cf   4 days ago    538MB
rabbitmq                              management   789501296640   5 days ago    263MB
redis                                 latest       3358aea34e8c   2 weeks ago   117MB
root@HE1C3GBF2:~#
|      1wanacry      2022-12-05 20:14:13 +08:00 via iPhone 您可以使用 Docker 的 export 和 import 命令将应用容器从一台服务器导出到另一台服务器。首先,在源服务器上,使用 docker export 命令将容器导出为 tar 文件: Copy code $ docker export <container_name> > export.tar 然后,将导出的 tar 文件复制到目标服务器上。在目标服务器上,使用 docker import 命令将容器导入到 Docker 中: Copy code $ docker import export.tar <new_image_name>:<tag> 您可以使用 docker images 命令查看导入的新镜像。接下来,使用 docker run 命令运行容器: Copy code $ docker run -it <new_image_name>:<tag> /bin/bash 这样,您就可以在目标服务器上无网络环境下运行容器了。 | 
|      2zhlxsh      2022-12-05 20:14:15 +08:00 via iPhone 镜像打包,启动配合写好 compose 文件,一条命令就能起 | 
|  |      3gosby      2022-12-05 20:17:37 +08:00 以下答案来自无脑的 ChatGPT  在断网的情况下,您可以将镜像打包成一个 tar 文件,然后将其复制到另一台 VPS 。您可以使用 docker save 命令将镜像打包成 tar 文件。例如: Copy code docker save -o 名称.tar AAA:8.2 BBB:5.6 将 tar 文件复制到另一台 VPS 后,您可以使用 docker load 命令将其加载到 VPS 中。例如: Copy code docker load -i 名称.tar 这应该可以将您的镜像导入到另一台 VPS 中,然后您就可以使用 docker run 命令运行容器了。不过,如果您的应用包含多个容器,您可能需要使用 Docker Compose 来运行这些容器,而不是单独运行每个容器。 如果您使用 Docker Compose ,可以在您的 VPS 上创建一个 docker-compose.yml 文件,并将您的容器配置添加到该文件中。然后,您可以使用 docker-compose up 命令在 VPS 上启动所有容器。例如: Copy code version: '3' services: web: image: domain-redirect-docker-master-web:latest ports: - "80:80" nginx: image: domain-redirect-docker-master-nginx:latest ports: - "443:443" mysql: image: mysql:latest rabbitmq: image: rabbitmq:management redis: image: redis:latest 上面的配置文件定义了 5 个容器,您可以在 VPS 上运行这些容 | 
|  |      4mind3x      2022-12-05 20:28:09 +08:00 via Android 多一句嘴,不喜请随意忽略。docker image 本身应该是无状态的,打包整个 container 不是正确做法。 正确做法是所有可变的数据和配置应该独立于 image 之外,比如放在 host 上,作为 volume 映射到 container 里。迁移时只把 volume 拷走就行。 |