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

从Makefile运行docker exec时看不到shell提示或输入

,可能是因为在Makefile中执行docker exec命令时,没有指定-T参数。

Docker exec命令用于在正在运行的容器中执行命令。默认情况下,docker exec命令会分配一个伪终端(pseudo-TTY)并绑定到容器的标准输入、输出和错误输出。但是,在Makefile中执行docker exec命令时,默认是不分配伪终端的,因此无法看到shell提示或输入。

为了解决这个问题,可以在Makefile中执行docker exec命令时,添加-T参数,强制分配一个伪终端。修改后的Makefile示例如下:

代码语言:txt
复制
run-container:
    docker exec -it -T container_name command

其中,container_name是要执行命令的容器名称,command是要在容器中执行的命令。

通过添加-T参数,docker exec命令会分配一个伪终端,使得在Makefile中运行docker exec时能够看到shell提示和输入。

推荐的腾讯云相关产品是腾讯云容器服务(Tencent Kubernetes Engine,TKE)。腾讯云容器服务是基于Kubernetes的容器管理服务,提供高可用、弹性伸缩的容器集群管理能力。您可以使用腾讯云容器服务来部署和管理容器化应用,包括使用docker exec命令在容器中执行命令。了解更多关于腾讯云容器服务的信息,请访问以下链接:

腾讯云容器服务官方网站:https://cloud.tencent.com/product/tke

腾讯云容器服务产品介绍:https://cloud.tencent.com/document/product/457

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

相关·内容

Docker下HBase学习,三部曲之一:极速体验

温馨提醒:有兴趣随本文一起实战的读者,请您先在电脑上安装运行Docker服务。...HBase是一个分布式的、面向列的开源数据库,很多应用都会用到,本章开始我们一同实战HBase,在docker环境下搭建到java开发都体验一遍。...exec -it hbase001 /bin/bash 启动HBase服务 进入hbase001容器后,输入以下命令就能启动hbase服务: /usr/local/work/hbase/bin/start-hbase.sh...终于可以开始体验HBase了,在命令行模式下,我们先创建个表试试,输入以下命令创建student表,行键是id,一个列族info: create 'student','id','info' 提示如下:...最后,回到HBase的命令行控制台,依次输入disable ‘student’和drop ‘student’两个命令,可以将student表删除,此时再执行list命令就看不到student表的信息了,

98770
  • Linux 提权的各种姿势总结

    5、su root 被禁止解决 拿到 root 密码,端口转发,代理,但防护墙禁止其他人登录 root,在原来的低权限 shell,也无法 sudo 切换 root 因为出于安全考虑,linux 要求用户必须终端设备...(tty)中输入密码,而不是标准输入(stdin)。...9、管理员配置错误 把不带 setuid(0); 代码的程序配置了 SUID,比如上面看到的 find 命令,当执行 find 是以 root 执行,在 find 的exec 后面加上我们自己的脚本即可...不过这里是失败的,没有配置错误 10、docker 组提权 docker组用户提权,目的是利用docker组的用户来提权,因为docker组用户在容器下为root权限,通过挂载方式在容器下给本机添加sudo...如果没有拥有sudo权限的用户,是无法执行sudo命令,在kali下会提示用户不在sudoers等提示

    19.1K73

    使用 Jenkins X、Kubernetes 和 Spring Boot 实现 CICD

    - James Strachan Jenkins X 帮助你自动化你在 Kubernetes 中的 CI/CD - 你甚至不需要学习 Docker Kubernetes!...将在一小后终止在你的主目录之外所做的任何更改,因此你可能必须重新运行这些命令。...当提示安装 ingress controller ,按 Enter 键 确定。再次按 Enter 键选择默认 domain。 系统将提示你创建 GitHub API Token。...在安装完成后喝杯咖啡、饮料做一些俯卧撑。可能需要几分钟。 下一步是将 API token Jenkins 复制到你的控制台。按照控制台中提供的说明进行操作。... Cloud Shell 创建一个简单的 Spring Boot 应用程序: jx create spring -d web -d actuator 此命令使用 Spring Initializr,因此系统会提示你进行一些选择

    7.7K70

    【愚公系列】2023年01月 Docker容器 .NET Core应用在Docker中的部署

    --network=host 结果会提示成功信息: 输入如下命令查看镜像 docker images 2.运行镜像 镜像创建完成后就可以创建并运行容器了。...原有指令 MAINTAINER 已经放弃使用,用 LABEL maintainer=“你的邮箱” 替代 3、USER 指定运行容器的用户名 UID,后续 RUN 也会使用指定用户 4、VOLUME...使用 docker exec -it 进入容器后,默认也会进入到 WORKDIR 指定的目录 容器启动的⼯作⽬录 6、ENV 指定容器启动的环境变量(注意,只有在容器启动,启动脚本能读取到,...执行的命令和参数当指定多个,只有最后一个起效 CMD [“executable”, “参数1”,“参数2”]:使用 exec 方式执行,推荐 CMD command 参数1 参数2:shell 方式执行...CMD [“参数1”,“参数2”]:提供给 ENTRYPOINT 做默认参数 启动容器执行的shell命令 10、ENTRYPOINT 指定容器的“入口” 支持两种格式,默认不会被 docker

    1.1K20

    如何将你的Python项目全面自动化?

    作者 | Martin Heinz 译者 | 平川 策划 | 陈思 每个项目——无论你是在从事 Web 应用程序、数据科学还是 AI 开发——都可以配置良好的 CI/CD、Docker 镜像一些额外的代码质量工具...因此,当遇到问题,你可以使用debug标记构建生产镜像,并将其与正常镜像一起部署,通过 exec 命令进入镜像并执行(比如说)线程转储。...当你运行 Docker 中的东西,有时候你还需要在 Docker 中调试它,为此,有以下目标: # Example: make shell CMD="-c 'date > datefile'" shell...通过这种方式,我们可以直接进入容器浏览,运行一次性命令,就像上面的例子一样。当我们完成了编码并希望将镜像推送到 Docker 注册中心,我们可以使用make push VERSION=0.0.2。...你可以使用它们创建单个的任务,然后将它们合并到自定义工作流中,然后在每次推送到存储库创建发布执行这些任务。

    94140

    Docker for Devs:创建一个开发版镜像

    最后,我们指定 WORKDIR 运行名为 "initialized.sh" 的 bash shell 脚本。...终端/命令提示符进入项目根目录并运行以下命令,以使 bash shell 脚本可执行: chmod +x initialize.sh 注意:请记住,这些容器正在基于 Linux 的环境中运行,因此运行...最后,指定要生成的镜像"express-dev-i" ,并将其作为容器运行 提示:当容器被移除,默认情况下不会删除数据卷。...或者您需要打开一个新的终端/命令提示符并通过: docker exec -it express-dev-app /bin/sh 在提示符下输入命令: ls -l image.png 我们做了什么?...我们使用 EXEC 命令连接正在运行的容器,使用 -it 标志提供交互式终端,并指定我们想要使用 /bin/sh 参数连接到bash shell

    1.6K91

    docker stop 或者 docker kill 不能停止容器

    然后在短暂的时间内 docker ps查看到的容器还在运行中,过了一会没有了我们在创建的时候会提示这个容器已经存在(如果建立同样名称的容器) docker stop 主流程 1,docker 通过 containerd...2,孤儿僵尸进程不能正常回收 当进程退出,它会变成僵尸进程,直到它的父进程调用 wait() ( 其变种 ) 的系统调用。process table 里面会把它的标记为 defunct 状态。...这个形式将使用shell处理来替代shell环境变量,并且会忽略任何CMDdocker运行命令行参数。...为了确保docker stop会正确地提示任何长期运行的ENTRYPOINT可执行文件,你需要记得用exec启动它。...使用方式很简单,我们只需要按照如下格式编写 Dockerfile 即可 ENTRYPOINT exec COMMAND param1 param2 以这种方式启动,exec 就会将 shell 进程替换为

    4.3K20

    Makefile入门

    每个规则由一个目标文件、一个多个依赖文件和一组命令组成,这些命令描述了如何依赖文件生成目标文件。 Makefile的主要作用是简化组织编译代码的过程,它可以帮助程序员自动化编译、链接和打包程序。...当我们在命令行中输入make命令,Make会查找当前目录下是否存在名为Makefilemakefile的文件。...依赖(Dependency):依赖是指生成目标体所需的文件另一个目标。它可以是一个多个文件,也可以没有。依赖项描述了目标文件与源文件之间的依赖关系,告诉Make如何源文件生成目标文件。...命令(Command):命令是Make需要执行的命令行指令,可以是任意的shell命令。这些命令描述了如何依赖文件生成目标文件。...这意味着,每次当你运行make targetb,make不会尝试查找一个叫做targetb的文件并尝试运行它的命令,而是会执行与targetb` 关联的命令。

    13010

    Docker入门-常用命令

    Docker镜像操作 Docker运行容器前需要本地存在对应的镜像,如果本地不存在该镜像,Docker镜像仓库下载该镜像。 获取镜像 Docker镜像仓库获取镜像的命令是docker pull。...rm $(docker image ls -q -f before=ubuntu:16.04) Docker容器操作 容器是独立运行的一个一组应该,以及它们运行态环境。...docker run -t -i ubuntu:16.04 /bin/bash -t 让Docker分配一个伪终端并绑定到容器的标准输入上,-i则让容器的标准输入保持打开。...进入容器 在使用-d参数,容器启动后进入后台,某些时候需要进入容器进行操作,使用docker exec命令可以进入到运行中。...只用-i参数,由于没有分配伪终端,界面没有我们熟悉的Linux命令提示符,但命令执行结果仍然可以返回。当-i -t参数一起使用时,则可以看到我们熟悉的Linux命令提示符。

    54220

    使用Makefile构建Docker

    使用Makefile构建Docker 刚开始学习docker命令的时候,很喜欢一个字一个字敲,因为这样会记住命令。后来熟悉了之后,每次想要做一些操作的时候就不得不 重复的输入以前的命令。...当切换一个项目之后,又重复输入类似但又不完全相同的命令,仅仅通过history命令加速也有限。 于是想,把要用的命令写到shell里,然后调用shell脚本去做。刚开始确实是这样做的。...比如https://github.com/Ryan-Miao/docker-yapi。 直到有一天,发现有人使用Makefile来存储操作,瞬间感觉很棒。 这里简单记录Makefile的简单用法。...Once a suitable makefile exists, each time you change some source files, this simple shell command:...; docker push ${NAME}:latest 构建一个版本的镜像 make build 构建完毕,运行一下镜像,看看内容是否正确 make start 最后推送到docker仓库 make

    3.8K30

    五分钟学K8S系列 - 一万五千字成为docker 的容器管理高手

    这对于需要交互式 shell 的场景非常有用。 注意事项 当使用 -i 选项,所启动的容器内的程序必须支持交互式输入。...例如,sh bash 可以很好地工作,因为它们是交互式 shell,而像 tail sleep 这样的命令则不支持交互式输入,因此 -i 选项对它们无效。...-it 分配了一个伪终端和交互式标准输入。注意事项容器必须已经在运行状态,否则 docker exec 命令将无法执行。...使用 -it 选项,我们可以通过 exit 命令 Ctrl+D 来关闭 shell 会话。...温馨提示导出容器文件系统到 tar 包后,可以使用 docker import 命令该 tar 包中导入一个新的镜像。

    44320

    命令行上的数据科学第二版:六、项目管理与`make`

    重要的是,我们的步骤可以被自己他人复制。当您继续以前的项目,您可能已经忘记了运行了哪些命令、哪个目录运行了哪些文件、使用了哪些参数以及运行的顺序。想象一下与合作者分享项目的挑战。...make是一个命令行工具,允许您: 根据输入和输出依赖关系形式化您的数据工作流步骤。 运行工作流程的特定步骤。 使用内联代码。 外部来源存储和检索数据。 在第一版, 这章用drake代替make....因此,您将了解: 用一个Makefile定义你的工作流。 输入和输出依赖关系的角度思考工作流。 运行任务和构建目标。...以上摘自我写这本书使用的Makefile。你可以说我把make作为一个荣耀的任务运行者。虽然这不是make的主要目的,但它仍然提供了很多价值,因为我不需要记住查找我使用了什么咒语。...相反,我输入make publish,这本书的最新版本就出版了。将长时间运行的命令放在一个Makefile中是非常好的。 并且可以为我们做更多的事情!

    68910

    docker stop 或者 docker kill 不能停止容器

    然后在短暂的时间内 docker ps查看到的容器还在运行中,过了一会没有了我们在创建的时候会提示这个容器已经存在(如果建立同样名称的容器) docker stop 主流程 1,docker 通过 containerd...2,孤儿僵尸进程不能正常回收 当进程退出,它会变成僵尸进程,直到它的父进程调用 wait() ( 其变种 ) 的系统调用。process table 里面会把它的标记为 defunct 状态。...这个形式将使用shell处理来替代shell环境变量,并且会忽略任何CMDdocker运行命令行参数。...为了确保docker stop会正确地提示任何长期运行的ENTRYPOINT可执行文件,你需要记得用exec启动它。...使用方式很简单,我们只需要按照如下格式编写 Dockerfile 即可 ENTRYPOINT exec COMMAND param1 param2 以这种方式启动,exec 就会将 shell 进程替换为

    7.2K82
    领券