20250706-5-Docker 快速入門(上)-創建容器常用選項_筆記

一、創建容器常用選項



1. 創建容器常用選項



1)常用選項
  • 創建容器常用選項

    • 交互式選項:
      • -i:保持標準輸入打開,允許交互式操作
      • -t:分配偽終端,使容器像傳統終端一樣工作
      • 組合使用:-it常用于進入容器交互模式,如docker exec -it <容器> bash
    • 后臺運行:
      • -d:以守護進程方式運行容器
      • 注意事項:純凈操作系統鏡像(如centos)直接使用-d會立即退出,因為沒有守護進程
    • 終端分配原理:
      • 偽終端作用:當使用-it時,偽終端會作為容器的一號進程來維持容器運行
      • 對比實驗:演示了docker run -d centos會退出,而docker run -it -d centos能保持運行
    • 進程保持機制:
      • nginx示例:通過docker top查看nginx容器有主進程和worker進程保持運行
      • centos示例:加-it后偽終端成為一號進程,防止容器退出
  • 設置環境變量

    

    • 參數格式:-e key=value
    • 應用場景:
      • 區分開發/測試/生產環境配置
      • 傳遞數據庫連接等動態參數
    • 示例:-e env=prod設置環境類型為生產環境
    • 容器內驗證:通過echo$env可查看傳入的變量值
  • 發布容器端口

    參數格式:

    • -P:自動映射所有expose端口到隨機宿主機端口
    • -p 宿主機端口:容器端口:指定映射關系
    • 示例:-p 88:80將容器80端口映射到宿主機88端口
    • 訪問驗證:通過瀏覽器訪問宿主機IP:88測試端口映射
  • 指定容器名稱

    

    • 參數格式:--name 容器名
    • 管理優勢:
      • 替代難記的容器ID
      • 提高可讀性和管理效率
    • 示例:--name web為nginx容器命名
  • 設置容器主機名

    參數格式:-h 主機名

    • 示例:-h web設置容器內主機名
    • 驗證方法:進入容器執行hostname命令查看
  • 容器重啟策略

    
    • 參數格式:--restart=策略
    • 策略類型:
      • no:不自動重啟(默認)
      • always:總是重啟
      • on-failure:失敗時重啟
    • 生產建議:使用always確保服務高可用
    • 重要特性:主機重啟后docker會自動拉起配置了always的容器
  • 查看容器詳細信息

    

    • 命令:docker inspect 容器
    • 輸出內容:
      • 網絡配置(IP、網關等)
      • 存儲驅動信息
      • 掛載點詳情
    • 應用場景:調試容器問題時獲取完整配置信息
  • 容器讀寫層與數據持久性

    

    • 存儲位置:/var/lib/docker/overlay2/
    • 讀寫層特性:
      • 容器修改保存在讀寫層(UpperDir)
      • 刪除容器會同時刪除讀寫層數據
    • 數據查看:
      • 通過docker inspect找到UpperDir路徑
      • 在宿主機可直接查看容器內文件
    • 持久化建議:重要數據應使用volume或bind mount
2)資源限制
  • 內存限制:
    • -m/--memory: 設置容器可使用的最大內存量,如500m表示500MB,1g表示1GB
    • --memory-swap: 控制允許交換到磁盤的內存量
    • --memory-swappiness: 設置容器使用SWAP分區的百分比(0-100),默認-1表示繼承宿主機設置
    • --oom-kill-disable: 禁用OOM Killer機制
  • CPU限制:
    • --cpus: 指定容器可使用的CPU核心數量,如1表示1核,1.5表示1.5核
    • --cpuset-cpus: 限制容器使用特定的CPU核心編號,如"0-3"表示使用0到3號核心
    • --cpu-shares: 設置CPU使用的相對權重
  • 必要性:
    • 防止單個容器資源耗盡影響宿主機和其他容器
    • 避免"造反"現象:當某個容器異常消耗資源時,不會拖垮整個宿主機
    • 在多容器環境下實現資源制衡,確保各容器公平使用資源
  • 實際應用:
    • 典型限制示例:docker run -m="500m" --cpus="1" -d nginx
    • 內存單位支持:MB(m)、GB(g)等標準單位
    • CPU核心數支持小數形式,如0.5表示半個核心
  • 配置建議:
    • 根據服務類型合理分配資源:Web服務通常需要更多內存,計算服務需要更多CPU
    • 生產環境必須設置資源限制,開發環境可適當放寬
    • 監控容器實際資源使用情況,動態調整限制參數
  • 注意事項:
    • 資源限制不是絕對的,極端情況下仍可能影響系統穩定性
    • 設置過小的限制可能導致服務性能下降
    • CPU共享權重(--cpu-shares)和核心綁定(--cpuset-cpus)通常只在特殊場景使用
二、知識小結

知識點

核心內容

考試重點/易混淆點

難度系數

創建容器常用選項

-d后臺運行、-it分配偽終端、-e環境變量、-p端口映射、--name容器命名、--restart重啟策略

-it組合作用:①進入容器交互界面 ②作為純凈系統守護進程

???

容器資源限制

--memory內存限制(如500M)、--cpusCPU核數限制(如1.5核)

關鍵區別:默認無限制 vs 顯式限制可防止資源搶占

????

容器數據持久化

讀寫層存儲在/var/lib/docker/containers/ID,容器刪除即丟失數據

易混淆點:重啟容器≠刪除容器,數據不會丟失

???

容器網絡基礎

-p 宿主機端口:容器端口實現端口暴露(如-p 8888:80)

重點驗證:通過宿主機IP:端口訪問容器服務

??

鏡像與容器關系

鏡像需包含守護進程(如nginx),否則需-it維持運行

典型對比:nginx鏡像(自帶進程)vs centos鏡像(需偽終端)

????

容器狀態管理

docker ps -l查看最新容器、docker top查看進程、docker inspect查看詳情

關鍵命令:docker exec -it ID bash進入運行中容器

??

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

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

相關文章

插值與擬合(3):B樣條曲線

在路徑規劃問題中&#xff0c;通常會用到B樣條來平滑路徑&#xff0c;本文實現并封裝了三次準均勻開放B樣條曲線&#xff0c;供大學學習使用。作者提供了三套代碼方案。可以用于不同平臺&#xff1a;方案1&#xff1a;MATLAB&#xff1b;方案2&#xff1a;標準C&#xff1b;方案…

[免費]基于Python豆瓣電影數據分析及可視化系統(Flask+echarts+pandas)【論文+源碼+SQL腳本】

大家好&#xff0c;我是java1234_小鋒老師&#xff0c;看到一個不錯的于Python豆瓣電影數據分析及可視化系統(Flaskechartpandas)【論文源碼SQL腳本】&#xff0c;分享下哈。項目介紹隨著如今電影越來越多&#xff0c;各種各樣的爛片和撈錢的商業片也層出不窮&#xff0c;而有意…

SQL127 月總刷題數和日均刷題數

SQL127 月總刷題數和日均刷題數 withtemp as (selectDATE_FORMAT(submit_time, "%Y%m") as submit_month,count(question_id) as month_q_cnt,round(count(question_id) / day(last_day(max(submit_time))),3) as avg_day_q_cntfrompractice_recordwhereyear(submit…

unity luban接入

1.找到luban官網并下載他的例子和.net8.0的sdk安裝 官網地址如下 快速上手 | Luban 參考大佬教程如下 Luban新版本接入教程_嗶哩嗶哩_bilibili 2.找到他的luban_examples-main示例下的兩個文件MiniTemplate和tool 3.MiniTemplate這個文件復制一份到項目工程下&#xff0c;自…

Django服務開發鏡像構建

最后完整的項目目錄結構1、安裝依賴pip install django django-tables2 django-filter2、創建項目和主應用django-admin startproject configcd configpython manage.py startapp dynamic_models3、配置settings.py將項目模塊dynamic_models加入進來&#xff0c;django_tables2…

20250706-3-Docker 快速入門(上)-常用鏡像管理命令_筆記

一、配置加速器&#xfeff;1. Docker Hub簡介與地址&#xfeff;公共鏡像倉庫: 由Docker公司維護的公共鏡像倉庫&#xff0c;包含大量容器鏡像默認下載源: Docker工具默認從這個公共鏡像庫下載鏡像訪問地址: https://hub.docker.com鏡像搜索功能: 可通過瀏覽器訪問圖形化管理系…

【unity游戲開發——優化篇】使用Occlusion Culling遮擋剔除,只渲染相機視野內的游戲物體提升游戲性能

注意&#xff1a;考慮到優化的內容比較多&#xff0c;我將該內容分開&#xff0c;并全部整合放在【unity游戲開發——優化篇】專欄里&#xff0c;感興趣的小伙伴可以前往逐一查看學習。 文章目錄 前言實戰1、確保所有靜止的3D物體都標記為Occluder Static靜態遮擋體和Occludee …

通用業務編號生成工具類(MyBatis-Plus + Spring Boot)詳解 + 3種調用方式

在企業應用開發中&#xff0c;我們經常需要生成類似 BZ -240704-0001 這種“業務編號”&#xff0c;它通常具有以下特點&#xff1a;前綴&#xff1a;代表業務類型&#xff0c;如 BZ 表示包裝日期&#xff1a;年月日格式&#xff0c;通常為 yyMMdd序列號&#xff1a;當天內遞增…

前端相關性能優化筆記

1.打開速度怎么變快 - 首屏加載優化2.再次打開速度怎么變快 - 緩存優化了3.操作怎么才順滑 - 渲染優化4.動畫怎么保證流暢 - 長任務拆分2.1 首屏加載指標細化:1.FP(First Paint 首次繪制) 2.FCP(First contentful Paint 首次內容繪制)&#xff0c;FP 到 FCP 中間其實主要是 SPA…

7.7晚自習作業

實操作業02&#xff1a;Spark核心開發 作業說明 請嚴格按照步驟操作&#xff0c;并將最終結果文件&#xff08;命名為&#xff1a;sparkcore_result.txt&#xff09;于20點前上傳。結果文件需包含每一步的關鍵命令執行結果文本輸出。 一、數據讀取與轉換操作 上傳賬戶數據$…

手機FunASR識別SIM卡通話占用內存和運行性能分析

手機FunASR識別SIM卡通話占用內存和運行性能分析 --本地AI電話機器人 上一篇&#xff1a;手機無網離線使用FunASR識別SIM卡語音通話內容 下一篇&#xff1a;手機通話語音離線ASR識別商用和優化方向 一、前言 書接上一文《阿里FunASR本地斷網離線識別模型簡析》&#xff0c;…

虛幻引擎Unreal Engine5恐怖游戲設計制作教程,從入門到精通從零開始完整項目開發實戰詳細講解中英字幕

和大家分享一個以前收集的UE5虛幻引擎恐怖游戲開發教程&#xff0c;這是國外一個大神制作的視頻教程&#xff0c;教程從零開始到制作出一款完整的游戲。內容講解全面&#xff0c;如藍圖基礎知識講解、角色控制、高級交互系統、高級庫存系統、物品檢查、恐怖環境氛圍設計、過場動…

多人協同開發時Git使用命令

拉取倉庫代碼 # 拉取遠程倉庫至本地tar_dir路徑 git clone gitgithub.com:your-repo.git target_dir # 默認是拉取遠程master分支&#xff0c;下面拉取并切換到自己需要開發的分支上 # 假設自己需要開發的分支是/feature/my_branch分支 git checkout -b feature/my_branch orig…

線性表——雙向鏈表

線性表——雙向鏈表1. 雙向鏈表的實現1.1 簡單圖例1.2 結點的定義1.3 新結點的創建1.4 鏈表的初始化1.5 結點的插入1.5.1 頭部插入&#xff08;頭插&#xff09;1.5.2 尾部插入&#xff08;尾插&#xff09;1.5.3 任意位置&#xff08;前&#xff09;插入1.6 結點的刪除1.6.1 頭…

Java后端技術博客匯總文檔

文章目錄 前言Java后端匯總鏈接Java基礎知識點數據結構算法&#xff08;Java實現&#xff09;算法知識點合集算法刷題算法競賽AcWing課程藍橋杯AB組輔導課合集&#xff08;更新中…&#xff09; 源碼分析redission 數據庫SQL ServerMySQLRedis -Canal JUC并發編程JVMNetty日志框…

QT 菜單欄設計使用方法

目錄 常用設置函數 多個QAction的單選設置 ???????菜單相關類 ??????? 系統菜單的生成和響應 使用代碼添加系統菜單 使用UI設計器設計系統菜單 使用Qt設計及界面時&#xff0c;常用的兩種方式添加菜單&#xff0c;第一使用UI界面添加&#xff0c;第二種 在…

AIGC領域AI藝術,打造個性化藝術作品

AIGC領域AI藝術,打造個性化藝術作品 關鍵詞:AIGC、AI藝術、生成對抗網絡、個性化創作、深度學習、藝術風格遷移、創意計算 摘要:本文深入探討了AIGC(人工智能生成內容)在藝術創作領域的應用,重點分析了如何利用AI技術打造個性化藝術作品。文章從技術原理出發,詳細解析了生…

基于Flask+Jinja2的快捷教務系統(后端鏈接到新版正方教務系統)

快捷教務系統&#xff08;Easy Educational Administration Management System, EasyEAMS&#xff09; 項目簡介 EasyEAMS 是一個基于 Flask Jinja2 的現代化教務系統 Web 應用。學生可通過網頁端登錄&#xff0c;在線查詢個人信息、成績、課表、學業生涯、通知、選課等。系…

EDM自動化與出海獨立開發實用教程

隨著互聯網全球化發展&#xff0c;越來越多的獨立開發者&#xff08;Indie Developer&#xff09;選擇將自己的產品推向海外市場。如何高效地獲客、激活用戶、提升轉化率&#xff0c;成為出海過程中必須解決的問題。EDM&#xff08;電子郵件營銷&#xff09;自動化&#xff0c;…

「日拱一碼」017 深度學習常用庫——TensorFlow

目錄 基礎操作 張量操作&#xff1a; tf.constant 用于創建常量張量 tf.Variable 用于創建可訓練的變量張量 tf.reshape 可改變張量的形狀 tf.concat 可將多個張量沿指定維度拼接 tf.split 則可將張量沿指定維度分割 數學運算&#xff1a; tf.add 張量的加運算 tf.su…