docker run 命令,不接it選項,run一個centos沒有顯示在運行,而run一個nginx卻可以呢?

docker run 命令,不接it選項,run一個centos沒有顯示在運行,而run一個nginx卻可以呢?

ChatGPT said:

你問到的這個現象,其實就是 鏡像默認啟動命令 (ENTRYPOINT / CMD) 的差異導致的。


🔍 情況分析

1. docker run centos

  • CentOS 官方鏡像的 Dockerfile 默認寫的是:
    CMD ["/bin/bash"]

  • 如果你直接運行:
    docker run centos
    容器會啟動 /bin/bash
    但是由于你 沒有加 -it(交互終端),

    • bash 沒有輸入

    • 沒有綁定終端

    • 啟動后馬上退出

    所以容器一閃而過,在 docker ps 里看不到。


2. docker run nginx

  • Nginx 官方鏡像的默認命令是:
    CMD ["nginx", "-g", "daemon off;"]

  • 這意味著它啟動的就是 Nginx 服務進程,并且特別指定 daemon off,讓 Nginx 以前臺模式運行

  • Docker 容器要求 必須有一個前臺進程一直運行,否則容器就會退出。

  • 所以運行:
    docker run nginx
    容器會保持運行(因為 nginx 主進程一直在前臺)。


📊 總結對比

鏡像默認命令是否需要 -it 才能保持運行行為
CentOS/bin/bash? 需要 -it,否則退出沒輸入就掛掉
Nginxnginx -g 'daemon off;'? 不需要服務以前臺運行,容器保持存活

? 如何解決

如果你想讓 CentOS 容器保持運行,即使不用 -it,可以指定一個“不會退出”的前臺進程,比如:

docker run -d centos tail -f /dev/null

這樣容器會后臺運行,并保持存活,你可以隨時用:

docker exec -it <容器ID> bash

進入操作。



-it的作用是?

ChatGPT said:

好,我們把 -it 拆開解釋:


-i(interactive)

  • 保持標準輸入 (STDIN) 打開,即使你沒有連接到容器。

  • 沒有 -i 時,容器里運行的程序如果需要輸入,就會直接斷掉。


-t(tty)

  • 為容器分配一個偽終端 (pseudo-TTY)

  • 有了 -t,你在容器里看到的是一個“像樣的終端環境”,可以有命令提示符、格式化輸出。

  • 沒有 -t,就算 -i 讓你能輸入,但界面很原始,沒有交互體驗。


-it 組合效果

  • 最常用,表示:

    • 給容器一個偽終端

    • 保持輸入通道

  • 典型場景:進入交互式 Shell,比如:
    docker run -it ubuntu bashdocker exec -it my_container sh
    這樣你能像登錄到一臺虛擬機一樣操作容器。


對比演示

假設你運行 CentOS:

  • 不加 -it
    docker run centos bash
    👉 bash 沒有輸入,馬上退出,容器立刻消失。

  • -it
    docker run -it centos bash
    👉 進入交互式終端,可以輸入命令、看到提示符,容器保持運行。


📌 總結一句:

  • -i 讓容器 能接收輸入

  • -t 讓容器 看起來像一個終端

  • -it 就是 進入容器里交互操作的必備組合

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

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

相關文章

【完整源碼+數據集+部署教程】水培植物病害檢測系統源碼和數據集:改進yolo11-AKConv

背景意義 研究背景與意義 隨著全球人口的不斷增長&#xff0c;農業生產面臨著前所未有的挑戰&#xff0c;尤其是在資源有限的環境中&#xff0c;如何提高作物的產量和質量成為了亟待解決的問題。水培技術作為一種新興的農業生產方式&#xff0c;因其高效的水資源利用和較少的土…

第2課:環境搭建:基于DeepSeek API的開發環境配置

概述 在開始大模型RAG實戰之旅前&#xff0c;一個正確且高效的開發環境是成功的基石。本文將手把手指導您完成從零開始的環境配置過程&#xff0c;涵蓋Python環境設置、關鍵庫安裝、DeepSeek API配置以及開發工具優化。通過詳細的步驟說明、常見問題解答和最佳實踐分享&#x…

Boost電路:穩態和小信號分析

穩態分析 參考張衛平的《開關變換器的建模與控制》的1.3章節內容&#xff1b;伏秒平衡&#xff1a;在穩態下&#xff0c;一個開關周期內電感電流的增量是0&#xff0c;即 dIL(t)dt0\frac{dI_{L}(t)}{dt} 0dtdIL?(t)?0。電荷平衡&#xff1a;在穩態下&#xff0c;一個開關周期…

Vue-25-利用Vue3大模型對話框設計之前端和后端的基礎實現

文章目錄 1 設計思路 1.1 核心布局與組件 1.2 交互設計(Interaction Design) 1.3 視覺與用戶體驗 1.4 高級功能與創新設計 2 vue3前端設計 2.1 項目啟動 2.1.1 創建和啟動項目(vite+vue) 2.1.2 清理不需要的代碼 2.1.3 下載必備的依賴(element-plus) 2.1.4 完整引入并注冊(main…

Elasticsearch面試精講 Day 7:全文搜索與相關性評分

【Elasticsearch面試精講 Day 7】全文搜索與相關性評分 文章標簽&#xff1a;Elasticsearch, 全文搜索, 相關性評分, TF-IDF, BM25, 面試, 搜索引擎, 后端開發, 大數據 文章簡述&#xff1a; 本文是“Elasticsearch面試精講”系列的第7天&#xff0c;聚焦于全文搜索與相關性評…

Vllm-0.10.1:vllm bench serve參數說明

一、KVM 虛擬機環境 GPU:4張英偉達A6000(48G) 內存&#xff1a;128G 海光Cpu:128核 大模型&#xff1a;DeepSeek-R1-Distill-Qwen-32B 推理框架Vllm:0.10.1 二、測試命令&#xff08;random &#xff09; vllm bench serve \ --backend vllm \ --base-url http://127.0.…

B.50.10.11-Spring框架核心與電商應用

Spring框架核心原理與電商應用實戰 核心理念: 本文是Spring框架深度指南。我們將從Spring的兩大基石——IoC和AOP的底層原理出發&#xff0c;詳細拆解一個Bean從定義到銷毀的完整生命周期&#xff0c;并深入探討Spring事務管理的實現機制。隨后&#xff0c;我們將聚焦于Spring …

雅菲奧朗SRE知識墻分享(六):『混沌工程的定義與實踐』

混沌工程不再追求“永不宕機”的童話&#xff0c;而是主動在系統中注入可控的“混亂”&#xff0c;通過實驗驗證系統在真實故障場景下的彈性與自我修復能力。混沌工程不是簡單的“搞破壞”&#xff0c;也不是運維團隊的專屬游戲。它是一種以實驗為導向、以度量為核心、以文化為…

從0死磕全棧第五天:React 使用zustand實現To-Do List項目

代碼世界是現實的鏡像,狀態管理教會我們:真正的控制不在于凝固不變,而在于優雅地引導變化。 這是「從0死磕全棧」系列的第5篇文章,前面我們已經完成了環境搭建、路由配置和基礎功能開發。今天,我們將引入一個輕量級但強大的狀態管理工具 —— Zustand,來實現一個完整的 T…

力扣29. 兩數相除題解

原題鏈接29. 兩數相除 - 力扣&#xff08;LeetCode&#xff09; 主要不能用乘除取余&#xff0c;于是用位運算代替&#xff1a; Java題解 class Solution {public int divide(int dividend, int divisor) {//全都轉為負數計算, 避免溢出, flag記錄結果的符號int flag 1;if(…

【工具類】Nuclei YAML POC 編寫以及批量檢測

Nuclei YAML POC 編寫以及批量檢測法律與道德使用聲明前言Nuclei 下載地址下載對應版本的文件關于檢查cpu架構關于hkws的未授權訪問參考資料關于 Neclei Yaml 腳本編寫BP Nuclei Template 插件下載并安裝利用插件編寫 POC YAML 文件1、找到有漏洞的頁面抓包發送給插件2、同時將…

自動化運維之ansible

一、認識自動化運維假如管理很多臺服務器&#xff0c;主要關注以下幾個方面“1.管理機與被管理機的連接&#xff08;管理機如何將管理指令發送給被管理機&#xff09;2.服務器信息收集&#xff08;如果被管理的服務器有centos7.5外還有其它linux發行版&#xff0c;如suse,ubunt…

【溫室氣體數據集】亞洲地區長期空氣污染物和溫室氣體排放數據 REAS

目錄 REAS 數據集概述 REAS 數據版本及特點 數據內容(以 REASv3.2.1 為例) 數據形式 數據下載 參考 REAS 數據集(Regional Emission inventory in ASia,亞洲區域排放清單)是由日本國立環境研究所(NIES)及相關研究人員開發的一個覆蓋亞洲地區長期空氣污染物和溫室氣體排放…

中州養老項目:利用Redis解決權限接口響應慢的問題

目錄 在Java中使用Redis緩存 項目中集成SpringCache 在Java中使用Redis緩存 Redis作為緩存,想要在Java中操作Redis,需要 Java中的客戶端操縱Redis就像JDBC操作數據庫一樣,實際底層封裝了對Redis的基礎操作 如何在Java中使用Redis呢?先導入Redis的依賴,這個依賴導入后相當于把…

MathJax - LaTeX:WordPress 公式精準呈現方案

寫在前面&#xff1a;本博客僅作記錄學習之用&#xff0c;部分圖片來自網絡&#xff0c;如需引用請注明出處&#xff0c;同時如有侵犯您的權益&#xff0c;請聯系刪除&#xff01; 文章目錄前言安裝 MathJax-LaTeX 插件修改插件文件效果總結互動致謝參考前言 在當今知識傳播與…

詳細解讀Docker

1.概述Docker是一種優秀的開源的容器化平臺。用于部署、運行應用程序&#xff0c;它通過將應用及其依賴打包成輕量級、可移植的容器&#xff0c;實現高效一致的運行效果&#xff0c;簡單來說&#xff0c;Docker就是一種輕量級的虛擬技術。2.核心概念2.1.容器&#xff08;Contai…

GEE:基于自定義的年度時序數據集進行LandTrendr變化檢測

本文記錄了使用自己的年度時序數據集,進行 LandTrendr 變化檢測的代碼。結果輸出變化年份、變化幅度以及變化持續時間。 結果如下圖所示, 文章目錄 一、核心函數 二、代碼 三、代碼鏈接 一、核心函數 var eeltgcm = require(users/949384116/lib:LandTrendr/getChangeMap)v…

PostgreSQL收集pg_stat_activity記錄的shell工具pg_collect_pgsa

這是一個純腳本工具&#xff0c;用于從PostgreSQL的pg_stat_activity視圖中定期收集數據并保存到本地日志文件。 相關背景&#xff1a; 某個慢SQL打滿內存&#xff0c;導致系統kill掉postgres的某個進程&#xff0c;進而導致postgres進程重啟&#xff0c;沒有現場排查不了具體…

通俗的話語解讀《銀行保險機構信息科技外包風險監管辦法》

這份文件不是 “紙上規矩”&#xff0c;而是銀行保險機構做信息科技外包的 “實操手冊”—— 從要不要外包、選誰合作&#xff0c;到怎么管過程、防風險&#xff0c;再到出問題怎么應對&#xff0c;都給了明確方向。作為管理者&#xff0c;核心是把這些要求落地到日常決策和系統…

芯片ATE測試PAT(Part Average Testing)學習總結-20250916

目錄 一、基本概念 二、靜態PAT 三、動態PAT 四、參考鏈接: 一、基本概念 零件平均測試(Part Average Testing,PAT)是一種基于統計學的質量控制方法,主要用于半導體制造中篩選出與正常參數范圍偏差較大的“異常值”芯片,以提高產品質量和可靠性; 二、靜態PAT 靜態…