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", "&"]

原因是“使用 docker run -it 命令啟動容器時,默認情況下會覆蓋 Dockerfile 中定義的 CMD 指令。”

以下回答來自GPT:
docker run -itddocker 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 -itddocker run -d不包含-i-t參數,因此不會為容器分配偽終端,也不會打開交互式會話。在這種情況下,Docker會默認執行Dockerfile中的CMD指令,作為容器啟動時的默認命令。

因此,如果您想要讓Docker忽略交互式會話,且直接執行Dockerfile中的CMD指令,可以嘗試使用docker run -d命令來啟動容器。這樣可以避免因為分配偽終端而導致CMD指令不執行的情況。

希望這個解釋對您有所幫助。如果您還有其他問題,請隨時告訴我!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/719166.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/719166.shtml
英文地址,請注明出處:http://en.pswp.cn/news/719166.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Sora爆火,數字人IP如何借助AIGC視頻生成軟件制作短視頻營銷?

ChatGPT、Sora等大模型的出現,創新了短視頻內容創作生產方式。但目前Sora模型無法準確模擬復雜場景的物理特性,并且可能無法理解因果關系導致視頻失真。 廣州虛擬動力基于用戶使用需求,推出了AIGC數字人視頻生成平臺,企業、品牌可…

c++基礎學習第三天(指針,結構體)

c基礎學習第三天(指針,結構體) 文章目錄 1、指針1.1、指針的基本概念1.2、指針變量的定義和使用1.3、 指針所占內存空間1.4、空指針和野指針1.5、 const修飾指針1.5.1、const修飾指針-常量指針1.5.2、const修飾常量-指針常量1.5.3、const即修…

Android MediaCodec 簡明教程(五):使用 MediaCodec 編碼 ByteBuffer 數據,并保存為 MP4 文件

系列文章目錄 Android MediaCodec 簡明教程(一):使用 MediaCodecList 查詢 Codec 信息,并創建 MediaCodec 編解碼器Android MediaCodec 簡明教程(二):使用 MediaCodecInfo.CodecCapabilities 查…

php:實現字符串補零str_pad()

說明 str_pad($input_string, $total_length, $pad_string, $pad_type); $input_string 是要填充的原始字符串。$total_length 是填充后的字符串總長度,包括原始字符串的長度。$pad_string 是用于填充的字符,通常是零。$pad_type 是填充的位置&#xff0…

欲哭無淚,2024年軟考有變!中高項只考1次了

今天可能最重磅的消息是:2024年軟考工作安排及有關事項的通知文件在瘋傳,這份文件中提到了: 軟考高級方面: 信息系統項目管理師從2次改為了1年只考1次,放在了上半年考。 系統規劃與管理師依然保持1次,但是…

每日一練:LeeCode-707. 設計鏈表 【鏈表+虛擬頭結點+設計】

每日一練:LeeCode-707. 設計鏈表 【鏈表虛擬頭結點設計】 思路設置虛擬頭節點 本文是力扣 每日一練:LeeCode-707. 設計鏈表 【鏈表虛擬頭結點設計】 學習與理解過程,本文僅做學習之用,對本題感興趣的小伙伴可以出門左拐LeeCode-70…

0101二階與三階行列式-行列式-線性代數

一 引例 求解二元一次方程組 { a 11 x 1 a 12 x 2 b 1 a 21 x 1 a 22 x 2 b 2 \begin{cases} a_{11}x_1a_{12}x_2b_1\\ a_{21}x_1a_{22}x_2b_2\\ \end{cases} {a11?x1?a12?x2?b1?a21?x1?a22?x2?b2?? 解: 1 a 21 ? 2 a 11 ? x 2 a 11 b 2 ? a…

Python函數的閉包

嵌套函數 在一個函數內部定義的函數稱為嵌套函數 閉包的形成 內層函數對外層函數非全局變量的引用就會形成閉包 閉包作用 保證數據安全 例子 li [] def average(value):li.append(value)return sum(li)/len(li) 如上面代碼li[]這個列表人人都能修改,這樣就…

自然語言處理實戰項目26-NLP模型訓練中前置應用之分詞方法的應用

大家好,我是微學AI,今天給大家介紹一下自然語言處理實戰項目26-NLP模型訓練中前置應用之分詞方法的應用。本文詳細介紹了自然語言處理(NLP)模型訓練中前置應用之分詞方法的應用。文章首先簡要概述了NLP的概念和分詞在其中的重要性。隨后,文章詳細介紹了四種主要的分詞方法…

MQL5學習之簡單移動平均線MA的編寫

昨天還是有點高估自己了,MACD相對較難一點,改學MA的編寫,首先明確MA的計算,假如有4個值,p[1,2, 3, 4], period3, 則v[0]p[0], v[1]p[1],v[2](p[0]p[1]p[2])/32, v[3](v[2]*3p[3]-p…

瀏覽器展示Blob/File文件

1. 瀏覽器展示Blob/File文件 I.Blob格式轉Base64格式 當我們接收到后端傳輸過來的文件時,很多時候我們需要將傳過來的文件轉為Base64格式。如后端傳來驗證碼圖片時等 下面將提供函數: // Blob轉Base64 export const blobToBase64 (blob: Blob) >ne…

ChatGPT論文指南|ChatGPT如何助力論文中的數據分析!【建議收藏】

點擊下方▼▼▼▼鏈接直達AIPaperPass ! AIPaperPass - AI論文寫作指導平臺 公眾號原文▼▼▼▼: ChatGPT論文指南|ChatGPT如何助力論文中的數據分析!【建議收藏】 小編在之前的論文寫作流程中,介紹了大量論文文字工作&#xff…

Effective objective-c-- 內存管理

Effective objective-c-- 內存管理 前言理解引用計數引用計數工作原理屬性存取方法中的內存管理自動釋放池保留環要點 以ARC簡化引用計數使用ARC時必須遵循的方法和命名規則變量的內存管理語義ARC如何清理實例變量覆寫內存管理方法要點 在dealloc方法中只釋放引用并解除監聽要點…

Mybatis-Plus 5分鐘快速上手,10分鐘熟練使用

小伙伴們好,歡迎關注,一起學習,無限進步 以下為學習 mybatis-plus 過程中的筆記 mybatis-plus 官網地址:https://mp.baomidou.com/ 文章目錄 特性快速開始mybatis-plus 配置插入測試及雪花算法主鍵生成策略查詢更新刪除查詢指定字…

Text2SQL 和 智能問答 的提示詞寫法

Text2SQL 生成 Query SQL System Message You are a {dialect} expert. Given an input question, creat a syntactically correct {dialect} query to run. Unless the user specifies in the question a specific number of examples to obtain, query for at most {top_k} r…

Linux 創建.NET 服務

文章目錄 創建服務啟用服務啟動 & 重啟服務查看服務狀態問題排查 創建服務 將服務文件上傳到 /home/mes/api-mes-dev, 其他服務修改對應的目錄在 /usr/lib/systemd/system/ 創建 mesapi-dev.service, 其他服務修改對應文件名 [Unit] Descriptionmesapi-dev service[Servi…

探索Linux世界:初次接觸和基本指令(文件操作)

文章目錄 1.基本介紹和準備2.基本指令和Linux的基本操作3.幾個重要基本指令3.1 ls - 列出文件和目錄3.1.1文件的知識3.1.2 .和..文件 3.2pwd - 顯示當前工作目錄3.2.1路徑知識 3.3 cd - 切換目錄3.4 touch - 創建文件或更新時間戳3.5mkdir - 創建新目錄3.6rm - 刪除文件或目錄3…

leetcode熱題100學習計劃-鏈表-反轉鏈表

思路 使用頭插法逆轉鏈表 注:鏈表一般為操作方便,頭結點不存值,是一個虛擬節點 代碼 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val)…

深入了解 Android 中的 FrameLayout 布局

FrameLayout 是 Android 中常用的布局之一&#xff0c;它允許子視圖堆疊在一起&#xff0c;可以在不同位置放置子視圖。在這篇博客中&#xff0c;我們將詳細介紹 FrameLayout 的屬性及其作用。 <FrameLayout xmlns:android"http://schemas.android.com/apk/res/androi…

【數據結構和算法初階(C語言)】帶環鏈表問題詳解(快慢指針的燒腦應用)

目錄 1.鋪墊-----帶環鏈表基本了解 2. 題目&#xff1a;環形鏈表 3.環形鏈表|| ?編輯 3.1題解1 3.2 題解2 4.總結 1.鋪墊-----帶環鏈表基本了解 環形鏈表題目啟迪&#xff1a; 環形鏈表特點&#xff1a;遍歷鏈表會出現一模一樣的地址 2. 題目&#xff1a;環形鏈表 給…