首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

‘`docker run`输出到bash变量-奇怪的行为

docker run命令用于在Docker容器中运行一个命令。它的基本语法是:

代码语言:txt
复制
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

其中,IMAGE表示要运行的Docker镜像,COMMAND表示要在容器中执行的命令,ARG表示命令的参数。

关于将docker run的输出结果保存到bash变量中的奇怪行为,可能是由于以下原因导致的:

  1. 重定向问题:在bash中,可以使用重定向符号>将命令的输出结果保存到变量中。但是,docker run命令的输出通常是打印到标准输出(stdout)而不是标准错误(stderr)。因此,如果要将docker run命令的输出保存到变量中,需要将标准错误重定向到标准输出,例如:
代码语言:bash
复制

output=$(docker run OPTIONS IMAGE COMMAND 2>&1)

代码语言:txt
复制

这样,2>&1将标准错误重定向到标准输出,然后将整个命令的输出结果保存到output变量中。

  1. 容器内部输出问题:有时候,docker run命令的输出结果可能是在容器内部产生的,而不是在主机上。这种情况下,需要使用docker exec命令在运行的容器中执行命令,并将输出结果保存到变量中。例如:
代码语言:bash
复制

container_id=$(docker run -d OPTIONS IMAGE COMMAND)

output=$(docker exec $container_id COMMAND)

代码语言:txt
复制

这样,首先使用docker run命令在后台运行容器,并获取容器的ID。然后,使用docker exec命令在容器中执行命令,并将输出结果保存到变量中。

需要注意的是,以上只是一种可能的解决方案,具体的操作方式可能会因实际情况而有所不同。在实际使用中,可以根据具体需求和环境进行调整和优化。

关于Docker的更多信息,可以参考腾讯云的相关产品和文档:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

我可以在不source脚本情况下将变量Bash脚本导出到环境中吗

echo $VAR 有没有一种方法可以通过只执行 export.bash 而不 source 它获取 $VAR? 答: 不可以。 但是有几种可能解决办法。...在调用 shell 上下文中执行脚本: $ cat set-vars1.sh export FOO=BAR $ . set-vars1.sh $ echo $FOO BAR 另一种方法是在脚本中打印设置环境变量命令.../set-vars2.sh)" $ echo "$FOO" BAR 在终端上执行 help export 可以查看 Bash 内置命令 export 帮助文档: # help export export...-f 指 shell 函数 -n 从每个(变量)名称中删除 export 属性 -p 显示所有导出变量和函数列表 ---- 参考: stackoverflow question 16618071...help eval 相关阅读: 用和不用export定义变量区别 在shell编程中$(cmd) 和 `cmd` 之间有什么区别 ----

16420
  • Docker永久挂载本地目录

    有时我们docker需要用到本地数据集,虽然我们可以用docker cp方式进行拷贝,但是通常如果数据集很大,所以直接拷贝到容器里显然不现实,所以我们需要把数据集路径挂载到容器。...但是普通docker mount命令又有一个缺点,就是每次开启这个容器都得这个命令,所以要想长期挂载这个目录下面的方法: 首先创建一个数据卷 命令: docker run -v 需挂载目录路径:容器挂载路径...--name 数据卷名字 容器名字 /bin/bash 例子: docker run -v /home/dock/Downloads:/usr/Downloads --name dataVol ubuntu64.../bin/bash 之后只需要运行下面命令就可以运行容器了 命令:docker run -it --volumes-from 数据卷名字 容器名字 /bin/bash 例子: docker run -...docker run -it -v 原路径:目的路径 -v 原路径:目的路径 容器名 上面的-v表示需要挂载源文件(夹)路径和目的路径,你需要挂载多少个路径就加多少个-v。

    4.7K30

    常用Docker命令和使用方法

    images创建运行容器1、docker run: 这是创建和运行容器最常见方式。...docker run -it ubuntu这个命令创建了一个基于Ubuntu镜像容器,并在其中启动一个交互式bash终端。通过-it选项,它为容器分配了一个交互式终端,并允许用户与容器进行交互。...运行该命令后,Docker会创建一个基于Ubuntu镜像容器,然后在容器内部执行/bin/echo "Hello Docker!"命令,并将"Hello Docker!"输出到标准输出。...可以使用docker exec命令进入正在运行容器:上面的命令将进入容器bash终端。...docker exec -it bash查看容器信息docker inspect 命令用于查看 Docker 容器详细信息,包括容器配置、网络设置、卷挂载、环境变量、ip等等。

    21221

    Docker 总结 ubuntu

    SRC_PATH CONTAINER:DEST_PATH 假设路径分隔符为/,第一个参数为SRC_PATH,第二个参数为DEST_PATH,行为如下: SRC_PATH指定一个文件 DEST_PATH...:3306 -e 后为环境变量(Environment Variables) MYSQL_ROOT_PASSWORD=demo-root-pw MySQL root 用户密码为:demo-root-pw...通过 [docker commit] 命令来提交一个基于当前容器状态新镜像 使用 [docker export] 命令来将容器导出到系统文件并压缩成 tar,之后可以根据该 tar 文件使用 docker...docker run -it REPOSITORY bash 启动镜像 --name="容器新名字": 为容器指定一个名称; -d: 后台运行容器,并返回容器ID,也即启动守护式容器; -i:...ENTRYPOINT ["/bin/bash"] 这样做后,会导致 docker run -it --name bayes-svm-knn-container bayes-svm-knn /bin/bash

    2.2K30

    docker容器常用命令

    、容器启动时执行命令、环境变量、工作目录等等) docker inspect ID/name:tag 删除镜像 # 删除指定镜像 docker rmi IID # 删除所有镜像 docker rmi...-i /opt/nginx.tar.gz 启动容器 # 启动交互式容器(/bin/sh、/bin/bashbash),执行exit后容器就退出了,可以使用ctrl+p+q docker run -it...容器ID/名称 # 将容器实时日志输出到文件,可以配合ELK进行日志收集 docker logs -f testxx > /var/log/xxx.log 2>1& 容器持久化存储 # 挂载数据卷...中设置环境变量,主要为了在执行docker run时候可以通过-e参数修改环境变量,这样也可以使镜像更加通用。...但是在dockerfile中指定了ENV变量,那么在docker run时候就可以修改这些设置。

    1.2K40

    解决docker容器启动不了问题

    描述 今天在学习docker时候遇到个问题,在通过镜像创建容器过程中,使用命令:docker run --name docker-test -d learn/ping /bin/bash,运行成功以后...容器运行命令如果不是那些一直挂起命令(比如运行top,ping),就是会自动退出。 而上面的代码中/bin/bash就是需要执行指定命令。...解决方法: 既然短暂命令会导致容器运行完就结束,那就试试持续长时间挂起命令哈,比如top,ping之类,所以把命令改成docker run --name docker-test -d learn...,然后docker attach learn/ping进入容器交互式界面,或者docker run -it learn/ping /bin/bash直接进入交互式界面,退出可以使用ctrl+d或者ctrl...(这种可以退出到宿主机,而保持container仍然在运行,通过docker ps可以看出)前一种方式退出了,容器也结束了,后一种方式,容器还会在后台运行。

    18K21

    Docker容器——常用命令清单汇总

    Docker容器——常用命令清单汇总 背景 日常我们开发时,我们会遇到各种各样奇怪问题(踩坑o(╯□╰)o),这个常见问题系列就是我日常遇到一些问题记录文章系列,这里整理汇总后分享给大家,让其还在深坑中小伙伴有绳索能爬出来...开发环境 系统:Ubuntu 内容 命名 案例 作用 docker info 查看docker信息 docker version 查看docker版本号 docker pull 镜像名[:标识]...docker pull centos 从默认远程仓库拉取镜像 docker run 容器名 docker run tomcat 运行一个容器,该命令还有很多用法,后续详解 docker help 查看所有...docker后面的命令 docker [run/images] help 查看dockerrun或者images后面的命令,docker后面可以跟其各种支持命令。...logs -f -t --tail=100 容器名 查看指定容器日志100条 docker exec -i -t 容器名称 /bin/bash 使用bash进入指定容器中。

    20810

    Docker 日志坑惨了

    bash 怎么磁盘满了?...这里有两个方案: 单一容器配置 全局配置 单一容器配置 启动容器时,通过参数来控制日志文件个数和单个文件大小: docker run -it --log-opt max-size=10m --log-opt...docker logs 显示内容包含 STDOUT 和 STDERR。 在生产环境下,如果我们应用输出到日志文件里,那么我们在使用 docker logs 时一般收集不到太多重要信息。...httpd 使用是让其输出到指定文件,正常日志输出到 /proc/self/fd/1 (STDOUT) ,错误日志输出到 /proc/self/fd/2 (STDERR)。...地址: https://github.com/yongxinz/tech-blog Go 专栏文章列表: Go 专栏|开发环境搭建以及开发工具 VS Code 配置 Go 专栏|变量和常量声明与赋值

    1.8K51
    领券