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

从bash脚本调用docker run的奇怪行为

可能是由于以下几个原因导致的:

  1. 环境变量问题:在bash脚本中调用docker run时,可能会遇到环境变量不一致的问题。可以通过在脚本中显式地设置环境变量或者在docker run命令中使用-e参数来解决。
  2. 文件路径问题:如果bash脚本中涉及到文件路径,可能会因为相对路径的不一致导致问题。建议在脚本中使用绝对路径或者在docker run命令中使用-v参数来映射文件路径。
  3. 用户权限问题:在bash脚本中调用docker run时,可能会遇到用户权限不足的问题。可以通过在docker run命令中使用-u参数指定合适的用户来解决。
  4. 网络访问问题:如果bash脚本中需要与网络进行交互,可能会因为网络访问权限或者网络配置问题导致异常行为。可以通过在docker run命令中使用--network参数指定网络模式或者使用--add-host参数添加主机名和IP地址的映射来解决。
  5. 容器资源限制问题:在bash脚本中调用docker run时,可能会遇到容器资源限制不当导致的问题。可以通过在docker run命令中使用--cpus--memory参数来限制容器的CPU和内存使用。

总结起来,从bash脚本调用docker run的奇怪行为可能是由于环境变量、文件路径、用户权限、网络访问和容器资源限制等问题导致的。解决这些问题可以通过设置合适的环境变量、使用绝对路径、指定合适的用户、配置网络访问和限制容器资源等方式来解决。腾讯云提供了丰富的容器服务,例如腾讯云容器服务 TKE,可以帮助用户轻松管理和运行容器化应用。详情请参考:腾讯云容器服务 TKE

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

相关·内容

如何从Bash脚本本身中获得其所在的目录

问: 如何从Bash脚本本身中获得其所在的目录? 我想使用Bash脚本作为另一个应用程序的启动器。我想把工作目录改为Bash脚本所在的目录,以便我可以对该目录下的文件进行操作,像这样: $ ....但是在以相对路径的方式去执行脚本时,获取的目录信息是相对路径,不能满足其他需要获取绝对路径的场景。 如果要获取绝对路径,可以使用如下方法: #!...$script_dir 其中第3行代码,无论从何处调用它,都将为你提供脚本的完整目录路径。...测试结果如下: 另外,可以根据第一种方法结合使用 realpath 命令,也可获取脚本所在目录的绝对路径: #!.../(点-斜杠),以便在bash中运行它 shell脚本对编码和行尾符敏感吗

34920
  • 从 SAR 报告中获取平均 CPU 利用率的 Bash 脚本

    大多数 Linux 管理员使用 SAR 报告监控系统性能,因为它会收集一周的性能数据。但是,你可以通过更改 /etc/sysconfig/sysstat 文件轻松地将其延长到四周。...在本文中,我们添加了三个 bash 脚本,它们可以帮助你在一个地方轻松查看每个数据文件的平均值。 这些脚本简单明了。出于测试目的,我们仅包括两个性能指标,即 CPU 和内存。...你可以修改脚本中的其他性能指标以满足你的需求。 从 SAR 报告中获取平均 CPU 利用率的 Bash 脚本 该 bash 脚本从每个数据文件中收集 CPU 平均值并将其显示在一个页面上。...done echo "+----------------------------------------------------------------------------------+" 运行脚本后...2:从 SAR 报告中获取平均内存利用率的 Bash 脚本

    1.6K10

    Java 应用容器化最佳实践

    : 间接 Exec 方式 熟悉 Docker 的同学都应该清楚, 在 Dockerfile 里直接运行命令无法解析环境变量; 但是有些时候我们又依赖脚本进行变量解析, 这时候我们可以先在脚本内解析完成...", "/entrypoint.bad.sh"] 对于 dump-init 也有同样的问题, 归根结底这个问题的根本还是在 bash 上: 当使用 bash 启动脚本后, bash 会 fork 一个新的子进程...: 使用 docker run -m 512m ......因为这两个版本在不设置的情况下有个奇怪的差异: 可以看到, 11.0.16 版本在不做任何设置时自动适应了容器内存限制, 堆内存从接近 4G 变为了 120M。...为了测试 DNS 缓存情况我从某大佬[6]这里抄来一个测试脚本, 该脚本会测试三个版本的 OpenJDK DNS 缓存情况: jvm-dns-ttl-policy.sh #!

    2.1K30

    Docker in docker的一些故障检查过程

    这个镜像的准备步骤是从docker下载当前1.9.1版安装(并固化到镜像里)CMD是一个脚本,先启动带debug选项的docker daemon 并放后台运行,然后pull并运行centos:7 一次,...不过1.8.2 RPM的docker-storage-setup脚本有问题 https://bugs.centos.org/view.php?...如果kill掉start_docker.sh启动的docker daemon,手工在docker exec bash的命令行上另启动一个daemon,则一定出/sys/fs/cgroup/docker.service...凝神定志,用重量级武器strace -f 跟踪内层docker daemon,记录下其文件访问行为,并比对错误信息,可以清晰的看到准备容器文件系统内容、mount、准备容器的cgroup环境、运行程序、...失败、清理现场的过程,而且发现对 /sys/fs/cgroup/docker.service 的访问是由 内层daemon调用native exec driver 执行的,还未运行到启动容器内程序的步骤

    25510

    如何从看不懂Dockerfile到创建自己的镜像

    前期顺风顺水直到看了胡博士的文章,对其Dockerfile的内容有很多不理解,后来明白Docker并不是单一独立的存在,你想要创建的镜像集成了所需的环境、软件、数据库以及脚本等,是生信处理能力的综合性体现...sklearn RUN conda install mysql-python 下载数据和脚本 12....启动容器并运行脚本 docker run -it -v ~/data/fastq:/data/fastq -v ~/data/script:/data/script aca8551e61bb nohup...,其在启动容器时执行echo命令,然而奇怪的事情发生了,启动容器后确实输出了"Hello,World!"却没进入容器中,就好像没被开启。如下图: ?...有需要让脚本在容器启动时运行,则可以加-d参数让容器在后台以守护状态运行docker run -it -d IMAGES_ID /bin/bash。

    2.8K20

    GraalVM 加持 Java 容器化,速度起飞!

    : 间接 Exec 方式 熟悉 Docker 的同学都应该清楚, 在 Dockerfile 里直接运行命令无法解析环境变量; 但是有些时候我们又依赖脚本进行变量解析, 这时候我们可以先在脚本内解析完成...", "/entrypoint.bad.sh"] 对于 dump-init 也有同样的问题, 归根结底这个问题的根本还是在 bash 上: 当使用 bash 启动脚本后, bash 会 fork 一个新的子进程...: 使用 docker run -m 512m ... ...因为这两个版本在不设置的情况下有个奇怪的差异: 可以看到, 11.0.16 版本在不做任何设置时自动适应了容器内存限制, 堆内存从接近 4G 变为了 120M。...为了测试 DNS 缓存情况我从某大佬[6]这里抄来一个测试脚本, 该脚本会测试三个版本的 OpenJDK DNS 缓存情况: jvm-dns-ttl-policy.sh #!

    1.1K40

    Docker:第二章:部署项目,对镜像,容器的操作

    服务器上的项目访问不了,所以我去看了看容器,果然 那我就删除容器呗 :docker rm 容器id docker rm f097e24a9a0f 说明:从镜像到容器,同一个镜像构建多个运行的 Docker...可以去看看镜像  可以看到仓库,标签,ID,创建时间和大小 从一个镜像运行一个包含一个主进程进程的容器命令:docker run -ti --name mall_mall-portal_1 mall/...mall-portal:1.0-SNAPSHOT bash 命令解释: Docker run 是从一个镜像运行一个容器的指令。...shell将用户输入翻译为操作系统能处理的指令。shell提供了一些内置命令,也支持调用外面工具。 dash,是ubuntu里默认的shell。...这就奇怪了,我项目运行是没有报错的 错误信息: 无法解析值“$accesskeyid”中的占位符“accesskeyid” 第一时间想到的是多个properties文件造成的,但是项目在浏览器运行没有出错

    60630

    docker部署项目,对镜像,容器的操作

    服务器上的项目访问不了,所以我去看了看容器,果然 那我就删除容器呗 :docker rm 容器id docker rm f097e24a9a0f 说明:从镜像到容器,同一个镜像构建多个运行的 Docker...可以去看看镜像  可以看到仓库,标签,ID,创建时间和大小 从一个镜像运行一个包含一个主进程进程的容器命令:docker run -ti --name mall_mall-portal_1 mall/...mall-portal:1.0-SNAPSHOT bash 命令解释: Docker run 是从一个镜像运行一个容器的指令。...shell将用户输入翻译为操作系统能处理的指令。shell提供了一些内置命令,也支持调用外面工具。 dash,是ubuntu里默认的shell。...这就奇怪了,我项目运行是没有报错的 错误信息: 无法解析值“$accesskeyid”中的占位符“accesskeyid” 第一时间想到的是多个properties文件造成的,但是项目在浏览器运行没有出错

    82030

    Docker快速入门(二)

    注意:docker container run命令具有自动抓取 image 文件的功能。如果发现本地没有指定的 image 文件,就会从仓库自动抓取。...' > /usr/share/nginx/html/index.html 格式二: exec 格式:RUN ["可执行文件", "参数1", "参数2"],这更像是函数调用中的格式。...RUN 就像 Shell 脚本一样可以执行命令,很多初学者在写Dockerfile的时候会像Shell 脚本一样把每个命令对应一个 RUN,比如这样: FROM debian:jessie RUN apt-get...每一个 RUN 的行为,就和刚才我们手工建立镜像的过程一样:新建立一层,在其上执行这些命令,执行结束后,commit 这一层的修改,构成新的镜像。 而上面的这种写法,创建了 7 层镜像。...因此,虽然表面上我们好像是在本机执行各种 docker 功能,但实际上,一切都是使用的远程调用形式在服务端(Docker 引擎)完成。

    72330

    docker的reap问题

    init进程周期执行wait系统调用reap其所收养的所有僵尸进程。...大多数情况下,这个进程并不会有init进程的行为,也就是说,这个进程并不会reap收养的进程,而是期望init进程来做这件事,这种做法是合理的。 来看一个具体的例子。...假设容器中跑一个Web服务器,这个服务器运行bash编写的CGI脚本,脚本中调用了grep。Web服务器发现脚本执行超时,杀掉了它,但是grep进程没有受到影响并继续运行。...解决办法 bash 是否已经有现成,流行的软件可以做到这一点呢?还真有,这就是bash。bash会正确地reap收养的子进程。bash可以执行任何程序。...docker init docker提供了一个解决的办法,在运行容器的时候添加init标志 docker run --init your_image_here 这会让docker内部的微型init系统封装应用程序

    1.2K30

    如何加速WordPress网站

    通过运行内置的“Hello World”程序检查安装是否成功: docker run hello-world 安装Docker Compose 下载最新版本的Docker Compose。...要查找负责此函数调用的代码,请从Linode执行以下命令: 在WordPress Docker容器上打开一个Bash shell: docker exec -it xhprof_host_net_wordpress_wordpress...负责的脚本是睡眠功能: 在WordPress Docker容器的Bash shell中,搜索以下代码: root@localhost:/var/www/html# grep -R 'function...一些WordPress插件也可以自动缩小脚本。 浏览器缓存 默认情况下,每次用户访问时,都会从您站点的Web服务器下载所有页面资源(图像,脚本,样式),即使他们最近访问过它并已经下载了这些项目。...这可能看起来很奇怪,因为Docker Compose文件已经负责运行XHGUI应用程序。

    4.2K30

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

    Docker容器——常用命令清单汇总 背景 日常我们开发时,我们会遇到各种各样的奇奇怪怪的问题(踩坑o(╯□╰)o),这个常见问题系列就是我日常遇到的一些问题的记录文章系列,这里整理汇总后分享给大家,让其还在深坑中的小伙伴有绳索能爬出来...docker pull centos 从默认远程仓库拉取镜像 docker run 容器名 docker run tomcat 运行一个容器,该命令还有很多用法,后续详解 docker help 查看所有...docker后面的命令 docker [run/images] help 查看docker下的run或者images后面的命令,docker后面可以跟其各种支持的命令。...将容器状态保存为镜像 docker search 镜像名 从远端查找符合的镜像 docker rm 容器名 删除容器,注需停止后进行 docker push 镜像名 推送本地镜像到远端 docker...logs -f -t --tail=100 容器名 查看指定容器的日志100条 docker exec -i -t 容器名称 /bin/bash 使用bash进入指定容器中。

    21410
    领券