一、docker的安裝

一、docker桌面

二、docker的配置文件

1、docker配置文件位置/etc/docker/daemon.json

使用json格式,graph=data-root

{"graph":"/deploy/docker","registry-mirrors": ["https://8auvmfwy.mirror.aliyuncs.com"],"insecure-registries": ["192.168.1.2","192.168.1.3:5000"],"live-restore": "true","exec-opts": ["native.cgroupdriver=systemd"],"storage-driver":"overlay2","ipv6": false,"bip":"172.18.0.1/24""default-address-pools": [{"scope": "local","base":"172.17.0.0/16","size":24}],"log-driver": "json-file","log-opts": {"max-size": "50m","max-size": "5m"}
}
graph:docker根目錄的存放位置
registry-mirrors:鏡像加速器
insecure-registries:指定信任倉庫
live-restore:容器的存活不依賴與docker引擎,docker引擎停止不影響容器運行
native.cgroupdriver:指定cgroup驅動,默認值為cgroupfs,推薦值為systemd
storage-driver:存儲驅動,overlay2、devicemapper、aufs
log-driver:日志驅動,json-file
bip:設置Docker0的默認IP,bip:設置Docker0的默認IP,
default-address-pools:配置容器使用的子網地址池base:指定CIDR網段,172.17.0.0/16表示子網掩碼長度為16。相當于主網絡size:變長子網掩碼,數值要大于等于16。相當子網絡
log-opts:日志策略。單個日志文件最大50M,最多保留3個
ipv6:是否開啟ipv6,true,false

僅當storage-driver為devicemapper時可用

指定單個容器可用數據空間20GB、docker可用數據空間200GB、元數據可用空間4GB

{"storage-opt": [ "dm.basesize=20G","dm.loopdatasize=200G","dm.loopmetadatasize=4G" ]
}

2、案例

注:graph=data-root

{
"data-root": "/data/docker",
"insecure-registries": ["192.168.65.129:80"],
"registry-mirrors": ["https://8auvmfwy.mirror.aliyuncs.com"],
"log-driver": "json-file",
"log-opts": {"max-size": "100m","max-file": "3"},
"default-ulimits": {"nofile": {"Name": "nofile","Hard": 128000,"Soft": 128000}
}
}

三、docker引擎

(一)安裝

1、contos7 安裝

1.1 卸載舊版本
$ sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine

卸載 Docker 時,存儲在 中的映像、容器、卷和網絡不會自動刪除。/var/lib/docker/

1.2 安裝方法

您可以根據需要以不同的方式安裝 Docker 引擎:

  • 您可以設置 Docker 的存儲庫并安裝 從他們那里,以便于安裝和升級任務。這是 推薦的方法。
  • 您可以下載 RPM 軟件包并手動安裝并管理 完全手動升級。這在安裝等情況下很有用 在無法訪問互聯網的氣隙系統上的 Docker。
  • 在測試和開發環境中,您可以使用自動化的便利腳本來安裝 Docker。
1.3 使用yum安裝
1.3.1 設置yum源
$ sudo yum install -y yum-utils
$ sudo yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.repo
1.3.2 安裝 Docker 引擎

1、安裝 Docker Engine、containerd 和 Docker Compose

安裝最新版本

sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

安裝之前版本

$ yum list docker-ce --showduplicates | sort -r
$ sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io docker-buildx-plugin docker-compose-plugin

此命令安裝 Docker,但不啟動 Docker。它還會創建一個組,但是,默認情況下不會向該組添加任何用戶。docker

2、啟動 Docker

$ sudo systemctl start docker

3、通過運行映像來驗證 Docker 引擎安裝是否成功。hello-world

$ sudo docker run hello-world
1.4 升級docker引擎

要升級 Docker 引擎,請按照安裝說明進行操作, 選擇要安裝的新版本。

1.5 從包安裝

如果您無法使用 Docker 的存儲庫來安裝 Docker,您可以下載您的版本文件并手動安裝。

  1. 轉到 https://download.docker.com/linux/centos/ 并選擇您的 CentOS 版本。然后瀏覽并下載要安裝的 Docker 版本的文件。x86_64/stable/Packages/``.rpm

  2. 安裝 Docker 引擎,將下面的路徑更改為下載 Docker 包的路徑

     $ sudo yum install /path/to/package.rpm
    

    Docker 已安裝,但尚未啟動。組已創建,但沒有 用戶將添加到組中。docker

  3. 啟動 Docker。

     $ sudo systemctl start docker
    
  4. 通過運行映像來驗證 Docker 引擎安裝是否成功。hello-world

     $ sudo docker run hello-world
    

    此命令下載測試映像并在容器中運行它。當 容器運行,它會打印確認消息并退出。

1.6 使用腳本安裝(最新版)
 $ curl -fsSL https://get.docker.com -o get-docker.sh$ sudo sh ./get-docker.sh --dry-run
1.7 卸載Docker
  1. 卸載 Docker Engine、CLI、containerd 和 Docker Compose 軟件包:

     $ sudo yum remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
    
  2. 主機上的映像、容器、卷或自定義配置文件 不會自動刪除。刪除所有映像、容器和 卷:

     $ sudo rm -rf /var/lib/docker$ sudo rm -rf /var/lib/containerd
    

您必須手動刪除任何已編輯的配置文件。

2、linux安裝靜態二進制文件

  1. 下載靜態二進制存檔。轉到 https://download.docker.com/linux/static/stable/, 選擇您的硬件平臺,然后下載與 要安裝的 Docker 引擎版本。.tgz

  2. 使用該實用程序提取存檔。提取 和 二進制文件。tar``dockerd``docker

    $ tar xzvf /path/to/<FILE>.tar.gz
    
  3. 可選:將二進制文件移動到可執行文件路徑上的目錄,例如 如。如果跳過此步驟,則必須提供 調用或命令時可執行。/usr/bin/``docker``dockerd

    $ sudo cp docker/* /usr/bin/
    
  4. 啟動 Docker 守護進程:

    $ sudo dockerd &
    

    如果需要使用其他選項啟動守護進程,請修改上述內容 命令或創建并編輯文件以添加自定義配置選項。/etc/docker/daemon.json

  5. 通過運行映像驗證 Docker 是否已正確安裝。hello-world

    $ sudo docker run hello-world
    

    此命令下載測試映像并在容器中運行它。當 容器運行,它會打印一條消息并退出。

3、以非 root 用戶身份管理 Docker

要創建組并添加用戶,請執行以下操作:docker

  1. 創建組。docker

    $ sudo groupadd docker
    
  2. 將您的用戶添加到組中。docker

    $ sudo usermod -aG docker $USER
    
  3. 注銷并重新登錄,以便重新評估您的組成員身份。

    如果您在虛擬機中運行 Linux,則可能需要 重新啟動虛擬機以使更改生效。

    您還可以運行以下命令來激活對組的更改:

    $ newgrp docker
    
  4. 驗證是否可以在沒有 .docker``sudo

    $ docker run hello-world
    

    此命令下載測試映像并在容器中運行它。當 容器運行,它會打印一條消息并退出。

    如果您最初在添加用戶之前運行了 Docker CLI 命令 對于該組,您可能會看到以下錯誤:sudo``docker

    WARNING: Error loading config file: /home/user/.docker/config.json -
    stat /home/user/.docker/config.json: permission denied
    

    此錯誤表示目錄的權限設置不正確,因為之前使用了該命令。~/.docker/``sudo

    若要解決此問題,請刪除目錄(已重新創建) 自動,但任何自定義設置都將丟失),或更改其所有權和 使用以下命令的權限:~/.docker/

    $ sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
    $ sudo chmod g+rwx "$HOME/.docker" -R
    

4、將 Docker 配置為使用 systemd 啟動啟動

許多現代 Linux 發行版使用 systemd 來 管理系統引導時啟動哪些服務。在 Debian 和 Ubuntu 上, 默認情況下,Docker 服務在啟動時啟動。要自動啟動 Docker 和 對于使用 systemd 的其他 Linux 發行版,在引導時運行 以下命令:

$ sudo systemctl enable docker.service
$ sudo systemctl enable containerd.service

若要停止此行為,請改用。disable

$ sudo systemctl disable docker.service
$ sudo systemctl disable containerd.service

如果需要添加 HTTP 代理,請為 Docker 運行時文件,或進行其他自定義,請參閱自定義 systemd Docker 守護程序選項。

5、配置默認日志記錄驅動程序

Docker 提供日志記錄驅動程序 從主機上運行的所有容器收集和查看日志數據。這 默認日志記錄驅動程序 ,將日志數據寫入 JSON 格式的文件 主機文件系統。隨著時間的推移,這些日志文件的大小會擴大,導致 磁盤資源可能耗盡。json-file

為避免過度使用磁盤存儲日志數據的問題,請考慮以下事項之一 選項:

  • 配置日志記錄驅動程序以啟用日志輪換json-file
  • 使用備用日志記錄驅動程序,例如默認執行日志輪換的“本地”日志記錄驅動程序
  • 使用將日志發送到遠程日志記錄聚合器的日志記錄驅動程序。

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

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

相關文章

Matlab 多項式擬合點法線(二維)

文章目錄 一、簡介二、實現代碼三、實現效果一、簡介 這個思路其實很簡單,假設我們有一組曲線點,我們可以對其擬合曲線并計算其導數來獲取每個點的法向量,當然這一思路也可以擴展至三維。具體過程如下所示: 二、實現代碼 %% *********

DeepSeek-R1 論文閱讀總結

1. QA問答&#xff08;我的筆記&#xff09; Q1: DeepSeek如何處理可讀性問題&#xff1f; 通過構建冷啟動數據&#xff08;數千條長CoT數據&#xff09;微調基礎模型&#xff0c;結合多階段訓練流程&#xff08;RL訓練、拒絕采樣生成SFT數據&#xff09;&#xff0c;并優化輸…

Manus AI:多語言手寫識別的技術革命與未來圖景

摘要&#xff1a;在全球化浪潮下&#xff0c;跨語言溝通的需求日益迫切&#xff0c;但手寫文字的多樣性卻成為技術突破的難點。Manus AI憑借其多語言手寫識別技術&#xff0c;將潦草筆跡轉化為精準數字文本&#xff0c;覆蓋全球超百種語言。本文從技術原理、應用場景、行業價值…

Flutter——最詳細原生交互(MethodChannel、EventChannel、BasicMessageChannel)使用教程

MethodChannel&#xff08;方法通道&#xff09; 用途&#xff1a;實現 雙向通信&#xff0c;用于調用原生平臺提供的 API 并獲取返回結果。 場景&#xff1a;適合一次性操作&#xff0c;如調用相機、獲取設備信息等。 使用步驟&#xff1a; Flutter 端&#xff1a;通過 Meth…

Python控制語句-循環語句-while

1.若k為整形,下述while循環執行的次數為()。 k=1000 while k>1: print(k) k=k/2 A、9 B、10 C、11 D、100 答案:A。k=k/2意味著每循環一次,k的值就會變為原來的一半,直到k的值不大于1。 2.下面的代碼,哪些會輸出1,2,3三個數字( )。 A、 for i in range(3): print(i) …

十二天-雙指針技術:鏈表問題的高效解法

一、雙指針技術分類 1. 同速雙指針&#xff08;同向移動&#xff09; 特點&#xff1a;兩個指針以相同速度移動適用場景&#xff1a; 鏈表逆序查找倒數第 k 個元素刪除倒數第 n 個節點 2. 快慢雙指針&#xff08;異速移動&#xff09; 特點&#xff1a;一個指針每次移動 1 步…

【vllm】Qwen2.5-VL-72B-AWQ 部署記錄

版本&#xff1a;0.7.2 注意事項&#xff1a; export LD_LIBRARY_PATH/home/xxxxx/anaconda3/envs/xxxxx/lib/python3.10/site-packages/nvidia/nvjitlink/lib:$LD_LIBRARY_PATH # 如果報錯可能需要Also pip install --force-reinstall githttps://github.com/huggingface/tra…

深度學習與大模型-張量

大家好&#xff01;今天我們來聊聊張量&#xff08;Tensor&#xff09;。別被這個詞嚇到&#xff0c;其實它沒那么復雜。 什么是張量&#xff1f; 簡單來說&#xff0c;張量就是一個多維數組。你可以把它看作是一個裝數據的容器&#xff0c;數據的維度可以是一維、二維&#…

【前端面試題】Vu3常見的面試題

1.Vue3與 Vue2的核心區別有哪些&#xff1f; ? 響應式系統 ?&#xff1a; ? Vue2&#xff1a;通過Object.defineProperty 實現響應式。這種方式在處理對象屬性的添加和刪除時存在局限性&#xff0c;且無法直接監控數組的變化 ?;?Vue3&#xff1a;采用Proxy 實現響應式&…

Android 粘包與丟包處理工具類:支持多種粘包策略的 Helper 實現

在Android開發中&#xff0c;處理TCP/UDP通信時&#xff0c;粘包和丟包是常見的問題。粘包是指多個數據包被接收方一次性接收&#xff0c;導致數據包之間的界限不清晰&#xff1b;丟包則是指數據包在傳輸過程中丟失。為了處理這些問題&#xff0c;我們可以編寫一個幫助類 Packe…

【C++11】移動語義

回顧 const int c的c是可以被取地址的&#xff0c;盡管是常量。所以以是否為常量來判斷是否為右值是錯誤的。 左值與右值正確的區分方法是是否能夠被取地址。&#xff08;能被取地址也就代表著是一個持久狀態&#xff0c;即有持久的存儲空間的值&#xff09; 常見的左值有我們…

LangChain教程 - Agent -之 ZERO_SHOT_REACT_DESCRIPTION

在構建智能 AI 助手時&#xff0c;我們希望模型能夠智能地調用工具&#xff0c;以便提供準確的信息。LangChain 提供了 AgentType.ZERO_SHOT_REACT_DESCRIPTION&#xff0c;它結合了 ReAct&#xff08;Reasoning Acting&#xff09;策略&#xff0c;使得 LLM 可以基于工具的描…

移動Android和IOS自動化中常見問題

APP測試邏輯 在app編寫自動化測試用例時&#xff0c;通常會出現只是簡單的點點點過程&#xff0c;然而卻忽略了在實際的自動化實現過程中&#xff0c;軟件是對app元素的判斷來執行測試腳本。所以會出現在后期已經寫好自動化腳本之后還會對測試用例的更新。 App在測試時&#…

python高效試用17---兩個字符串組成一個新的字符串和兩個字符串組成元組作為key哪個更高效

在 Python 中&#xff0c;使用字符串連接 (str1 str2) 作為 key 和使用元組 ((str1, str2)) 作為 key 的效率差異&#xff0c;主要受以下因素影響&#xff1a; 哈希計算速度&#xff1a; 字符串連接 (str1 str2)&#xff1a;會創建一個新的字符串對象&#xff0c;并計算哈希…

深入淺出Java try-with-resources:告別資源泄漏的煩惱

一、為什么需要try-with-resources&#xff1f; 在Java開發中&#xff0c;我們經常需要處理各種資源&#xff1a;文件流、數據庫連接、網絡套接字等。這些資源都有一個共同特點——必須在使用后正確關閉。傳統的資源管理方式存在三大痛點&#xff1a; 代碼臃腫&#xff1a;每…

Python+DeepSeek:開啟AI編程新次元——從自動化到智能創造的實戰指南

文章核心價值 技術熱點:結合全球最流行的編程語言與國產頂尖AI模型實用場景:覆蓋代碼開發/數據分析/辦公自動化等高頻需求流量密碼:揭秘大模型在編程中的創造性應用目錄結構 環境搭建:5分鐘快速接入DeepSeek場景一:AI輔助代碼開發(智能補全+調試)場景二:數據分析超級助…

Linux tcpdump -any抓的包轉換成標準的pcap

在 Linux 中使用 tcpdump -any 抓包并轉換為標準 pcap 文件時出現額外字段,通常與 鏈路層協議頭部的差異 以及 pcap 文件格式的兼容性 有關。以下是詳細原因和解決方案: 一、問題原因分析 -any 選項的局限性 tcpdump -any 會自動猜測鏈路層協議類型(如 Ethernet、IEEE 802…

【SpringMVC】深入解析使用 Postman 在請求中傳遞對象類型、數組類型、參數類型的參數方法和后端參數重命名、及非必傳參數設置的方法

SpringMVC—請求傳參 1. 傳遞對象 如果參數比較多時&#xff0c;方法聲明就需要有很多形參&#xff1b;并且后續每次新增一個參數&#xff0c;也需要修改方法聲明. 我們不妨把這些參數封裝為一個對象&#xff1b; Spring MVC 也可以自動實現對象參數的賦值&#xff0c;比如 Us…

一個差勁的軟件設計

項目概況&#xff1a; 之前自己設計并開發了一個用C#開發的上位機軟件&#xff0c;整個軟件只有一個Form&#xff0c;一個TabControl&#xff0c;3個TabControlPanel&#xff0c;總共100多個lable、textbox、ListBox等控件都放在這3個TabControlPanel里。 問題&#xff1a; 1.…

Linux練級寶典->進程控制詳解(進程替換,fork函數)

目錄 進程創建 fork函數 寫時拷貝 進程終止 進程退出碼 exit函數 _exit函數 return&#xff0c;exit _exit之間的區別和聯系 進程等待 進程等待的必要性 獲取子進程status 進程等待的方法 wait waipid 多子進程創建理解 非阻塞輪詢檢測子進程 進程程序替換 替…