代码之家  ›  专栏  ›  技术社区  ›  late1

批处理文件未执行命令

  •  0
  • late1  · 技术社区  · 2 年前

    我正在尝试创建一个。bat文件,用于备份容器内的数据库。在第一个命令(用于进入容器)之后,将忽略下一个命令。

    docker exec -it CONTAINER_NAME /bin/bash
    cd /var/opt/mssql/data
    

    知道为什么吗?如果我试图手动写入 cd /var/opt/mssql/data 在打开的cmd中,它可以工作。

    1 回复  |  直到 2 年前
        1
  •  1
  •   Mime    2 年前

    运行时 docker exec -it CONTAINER_NAME /bin/bash ,您正在打开 bash -docker容器内的外壳。

    下一个命令,即。 cd /var/opt/mssql/data ,仅当前面的命令, docker exec-it CONTAINER\u NAME/bin/bash 已成功退出,这意味着docker容器上的shell已关闭/退出。

    这意味着 cd/var/opt/mssql/data 然后在本地计算机上执行,而不是在docker容器中执行。

    要在docker容器内运行命令,请使用以下命令

    docker exec -it CONTAINER_NAME /bin/bash -c "<command>"
    

    尽管在构建过程中最好在容器内创建一个脚本,或者在启动容器时在docker容器内装载一个脚本,然后使用上述命令简单地调用该脚本。