码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Dockerfile执行的时候没有执行CMD


    参考:https://blog.csdn.net/Zx13170918986/article/details/130831052

    在dockerfile中编写CMD后,发现如果执行docker run -itd这样的指令,是没法启动CMD脚本的,例如以下的dockerfile

    FROM node:16 
    WORKDIR /home/
    COPY start_server.sh ./start_server.sh
    CMD ["nohup", "./start_server.sh", "&"]
    
    • 1
    • 2
    • 3
    • 4

    原因是“使用 docker run -it 命令启动容器时,默认情况下会覆盖 Dockerfile 中定义的 CMD 指令。”

    以下回答来自GPT:
    docker run -itd和docker run -d在Docker运行容器时确实有一些不同之处,主要涉及到交互性和终端的设置。- docker run -itd:

    • -i:表示要打开一个交互式会话。
    • -t:为容器分配一个伪终端(pseudo-TTY)。
    • -d:在后台运行容器。

    当您使用docker run -itd时,会分配一个伪终端(TTY),也就是分配一个终端。这样容器会以后台模式运行,但是也会打开一个伪终端。由于分配了伪终端,Docker会认为您可能会需要交互式会话,因此不会执行Dockerfile中的CMD指令,因为Docker理解您可能会手动输入命令。

    • docker run -d:
      • -d:在后台模式运行容器。

    相对于docker run -itd,docker run -d不包含-i和-t参数,因此不会为容器分配伪终端,也不会打开交互式会话。在这种情况下,Docker会默认执行Dockerfile中的CMD指令,作为容器启动时的默认命令。

    因此,如果您想要让Docker忽略交互式会话,且直接执行Dockerfile中的CMD指令,可以尝试使用docker run -d命令来启动容器。这样可以避免因为分配伪终端而导致CMD指令不执行的情况。

    希望这个解释对您有所帮助。如果您还有其他问题,请随时告诉我!

  • 相关阅读:
    RabbitMQ单机部署
    大数据可视化的设计规范,全面剖析,很实用。
    一年好景君须记,正是橙黄橘绿时[开学季flag]
    重学java 63.IO流 字节流 ④ 文件复制
    使用RestCloud ETL Shell组件实现定时调度DataX离线任务
    NOKOV动作捕捉系统使多场协同无人机自主建造成为可能
    如何在 Ubuntu VPS 实例上安装 Chef 服务器、工作站和客户端
    猿创征文|Python快速刷题网站——牛客网 数据分析篇(十二)
    低市值Pow赛道解析,探寻百倍潜力项目
    基于 Docker 构建轻量级 CI 系统:Gitea 与 Woodpecker CI 集成
  • 原文地址:https://blog.csdn.net/weixin_42763696/article/details/136363385
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号