有啥无脑把 docker 应用搬家的办法吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jsjcjsjc
V2EX    问与答

有啥无脑把 docker 应用搬家的办法吗?

  •  
  •   jsjcjsjc 2022-12-05 20:02:29 +08:00 2594 次点击
    这是一个创建于 1041 天前的主题,其中的信息可能已经有所发展或是发生改变。

    由于一个应用有好几个 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:~# 
    6 条回复    2022-12-06 21:14:48 +08:00
    wanacry
        1
    wanacry  
       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
    这样,您就可以在目标服务器上无网络环境下运行容器了。
    zhlxsh
        2
    zhlxsh  
       2022-12-05 20:14:15 +08:00 via iPhone
    镜像打包,启动配合写好 compose 文件,一条命令就能起
    gosby
        3
    gosby  
       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 上运行这些容
    mind3x
        4
    mind3x  
       2022-12-05 20:28:09 +08:00 via Android
    多一句嘴,不喜请随意忽略。docker image 本身应该是无状态的,打包整个 container 不是正确做法。

    正确做法是所有可变的数据和配置应该独立于 image 之外,比如放在 host 上,作为 volume 映射到 container 里。迁移时只把 volume 拷走就行。
    julyclyde
        5
    julyclyde  
       2022-12-06 13:51:17 +08:00
    @mind3x 说的对
    OP 的需求根本就是错的
    jsjcjsjc
        6
    jsjcjsjc  
    OP
       2022-12-06 21:14:48 +08:00
    @mind3x 感谢,我的都是些采集数据,每日覆盖的,只是每次固定配置很长时间,所以我才想这样的~
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2663 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 42ms UTC 13:31 PVG 21:31 LAX 06:31 JFK 09:31
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86