1、docker概念和基本使用命令

docker概念

微服務:不再是以完整的物理機為基礎的服務軟件,而是借助于宿主機的性能。以小量的形式,單獨部署的應用。

docker:是一個開源的應用容器引擎,基于go語言開發的,使用時apache2.0的協議。docker是在Linux里面運行的容器化的開源工具。是一種輕量級的虛擬機。

鯨魚是宿主機,集裝箱是一個個獨立的應用。每個應用之間都是相互隔離和獨立的

docker的設計的宗旨

1、封裝

2、發布

3、部署

4、運行

5、銷毀

容器的生命周期————>達到一次封裝,多次運行的目的。

可移植,可擴展,兼容性的目的。隨時對地都可以快速的部署和使用docker的應用。

docker應用的隔離

docker是在Linux上運行,與其他的容器共享主機的內核,包括其他的資源(cpu,內存,硬盤),但是docker應用都是獨立的進行,為什么能做到獨立:

Linux的命名空間namespace可以實現資源的隔離

Linux的cgroup可以實現對docker應用程序的資源限制

namespace是Linux內核的一種特性,允許將一組系統資源進行隔離,是一種命名空間中的進程看起來像在系統中擁有獨立的資源。

namespace的6個命名空間

1、UTS? 隔離主機名和域名:系統調用的參數,在每個應用中,都能看到自己的主機名和域名,與其他進程分隔開。

2、PID? 隔離進程:隔離內容:進程編號,當運行應用之后,每個應用都有自己的獨立的進程編號的空間,每個進程之間不會發生沖突。

3、network? 隔離網絡:每個應用啟動之后,都有自己的獨立的網絡空間,隔離網絡設備、端口和網絡棧。

4、mount? 隔離文件系統:隔離文件系統,每個應用掛載之后都有之間獨立的文件系統掛載點,這些掛載點互補沖突,也不會互相干擾。

5、IPC? 隔離信號量:隔離信號量,消息隊列和共享內存,在IPC隔離當中,每個進程之間都有獨立的通信資源。

6、user? 隔離用戶和用戶組:每個用戶和組都是獨立的命名空間,不同的用戶和組之間都是隔離開的。

docker的核心概念

倉庫:docker的倉庫是用來保存鏡像的地方,也是獲取鏡像和上傳鏡像的目的地。

鏡像:docker鏡像是創建容器的基礎,一個鏡像就類似于一個可執行的、包含源碼的二進制包,包括容器運行的參數、設置、環境變量和配置文件。是一個打包好的可運行程序。

容器:容器是基于鏡像創建的運行的實例

docker基本命令

拉取鏡像-docker pull

查看當前下載到本地的鏡像-docker images

  • REPOSITORY:應用的名稱
  • TAG:鏡像的標簽,應用的版本
  • IMAGE ID:鏡像在本地的唯一標識
  • CREATED:發布在鏡像倉庫的時間
  • SIZE:鏡像的大小

查看鏡像的詳細信息-docker inspect

查看鏡像的詳細信息-docker inspect 鏡像ID

鏡像下載完保存在/var/lib/docker/

overlay2:鏡像的聯合文件系統,有四層。

  • lowerDir:鏡像的底層文件系統,整個鏡像的根文件系統(運行載體)
  • upperDir:可寫層,用戶可以自定義的在底層文件系統上進行修改,但是這些修改又不影響根文件系統,容器可以實現讀寫。
  • mergedDir:合并目錄,就是用戶看到的容器內的一個視圖
  • workDir:工作目錄,進行寫操作時,可以是聯合文件系統overlay2更新和跟蹤對于文件系統的修改。

創建鏡像副本-docker tag

docker tag nginx:1.22 nginx:自定義標簽:相當于給nginx:1.22做了一個副本

鏡像的組成:鏡像名:標簽

刪除鏡像-docker?rmi -f

docker?rmi -f?nginx:1.22/ID:刪除鏡像

導出/導入鏡像-docker save/load

docker save -o /opt/centos.tar centos:7:把本地鏡像導出到指定位置,保存為指定名稱

docker load -i?centos.tar:把鏡像導入到本地docker中

創建容器-docker run -itd

docker run -itd ubuntu:22.04:如何基于鏡像創建容器

  • -i:表示容器開啟標準輸入,接受用戶輸入的指令。
  • -t:生成一個偽終端tty,用戶可以進入容器的內部。
  • -d:容器創建完之后進入后臺運行
  • run:如果不存在指定的鏡像,他會自動拉取倉庫指定的鏡像然后再創建容器。拉取+運行

查看運行狀態的容器-docker ps

docker ps -a:查看所有狀態的容器,包括運行和停止以及報錯的容器。

Up:表示容器正在運行中

出現exit的原因:容器啟動之后,都會有一個執行的命令,如果該命令執行完畢之后沒有其他的可執行內容,那么容器會立刻退出進入終止狀態。

進入容器內部-docker? exec? -it??容器id??bash

docker? exec? -it? 容器id/名稱? /bin/bash | bash:進入容器內部操作

創建自定義名稱容器-docker? run? -itd? --name

docker? run? -itd? --name? 自定義名稱? 容器名稱:給容器自定義名稱

容器:基于鏡像的配置和環境,創建一個基于Linux系統的,在這個系統當中安裝了指定應用的小型虛擬機。

宿主機和容器文件傳輸-docker? cp

1、宿主機的文件復制到容器內部:docker? cp? 文件名? 容器名:/路徑

2、容器的文件復制到宿主機:docker? cp??容器名:/文件名? ?宿主機目錄

查看容器的日志-docker? logs? -f

查看容器的標準輸出:查看容器的日志

docker? logs? -f? 容器名稱

端口映射

-P:指定宿主機隨機端口和容器內的端口映射,從32768——65535。

-p:需要人工指定宿主機的端口和容器進行映射,只要指定端口宿主機沒有被占用都可以使用。

創建一個以nginx:1.22鏡像的容器test1,指定宿主機隨機端口和容器內的80端口映射

  • 82:宿主機端口,80:容器端口

刪除容器-docker? rm? ?-f

docker? rm? ?-f? 容器名稱:強制刪除容器

  • 容器是基于鏡像創建的,但是容器一旦運行,鏡像不再是依賴條件,鏡像可以刪除,不影響部署的容器。

查看容器IP地址

批量刪除容器

1、批量刪除后臺所有已經停止的容器

2、批量刪除所有容器

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

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

相關文章

Genymotion配套VirtualBox所在地址

在 Genymotion打開虛擬機前需要先打開VirtualBox中的虛擬機 C:\Program Files\Oracle\VirtualBox\VirtualBox.exe 再開啟genymotion中的虛擬機開關

【Linux】深刻理解軟硬鏈接

一.軟硬鏈接操作 1.軟連接 touch 創建一個文件file.txt ,對該文件創建對應的軟鏈接改怎么做呢? ln -s file.txt file-soft.link .給對應文件創建軟連接。 軟連接本質就是一個獨立的文件,因為我們對應的軟連接有獨立的inode,他…

linux下MySQL的數據存放

在 Linux 下安裝的 MySQL,數據表的數據默認存放在 My曉SQL 數據庫的**數據目錄**(Data Directory)中。具體來說,MySQL 會將所有數據庫的數據存儲在一個由 MySQL 配置文件中指定的目錄里。該目錄包含了所有數據庫的表、索引、日志等…

第三十六章 Spring之假如讓你來寫MVC——攔截器篇

Spring源碼閱讀目錄 第一部分——IOC篇 第一章 Spring之最熟悉的陌生人——IOC 第二章 Spring之假如讓你來寫IOC容器——加載資源篇 第三章 Spring之假如讓你來寫IOC容器——解析配置文件篇 第四章 Spring之假如讓你來寫IOC容器——XML配置文件篇 第五章 Spring之假如讓你來寫…

快速上手 HarmonyOS 應用開發

一、DevEco Studio 安裝與配置 1. DevEco Studio 簡介 DevEco Studio 是 HarmonyOS 的一站式集成開發環境(IDE),提供了豐富的工具和功能,支持 HarmonyOS 應用開發的全流程。 2. DevEco Studio 下載與安裝 下載地址&#xff1a…

Java Web開發進階——錯誤處理與日志管理

錯誤處理和日志管理是任何生產環境中不可或缺的一部分。在 Spring Boot 中,合理的錯誤處理機制不僅能夠提升用戶體驗,還能幫助開發者快速定位問題;而有效的日志管理能夠幫助團隊監控應用運行狀態,及時發現和解決問題。 1. 常見錯誤…

圖解Git——分支的新建與合并《Pro Git》

?分支的新建與合并 先引入一個實際開發的工作流: 開發某個網站。為實現某個新的需求,創建一個分支。在這個分支上開展工作。 正在此時,你突然接到一個電話說有個很嚴重的問題需要緊急修補。你將按照如下方式來處理: 切換到你…

C#使用實體類Entity Framework Core操作mysql入門:從數據庫反向生成模型2 處理連接字符串

初級代碼游戲的專欄介紹與文章目錄-CSDN博客 我的github:codetoys,所有代碼都將會位于ctfc庫中。已經放入庫中我會指出在庫中的位置。 這些代碼大部分以Linux為目標但部分代碼是純C的,可以在任何平臺上使用。 源碼指引:github源…

【數據可視化-12】數據分析崗位招聘分析

🧑 博主簡介:曾任某智慧城市類企業算法總監,目前在美國市場的物流公司從事高級算法工程師一職,深耕人工智能領域,精通python數據挖掘、可視化、機器學習等,發表過AI相關的專利并多次在AI類比賽中獲獎。CSDN…

LeetCode 977 題:有序數組的平方

LeetCode 977 題&#xff1a;有序數組的平方 (Squares of a Sorted Array) LeetCode 第977題要求給定一個按非降序排列的整數數組 nums&#xff0c;返回每個數字的平方并按升序排列。 題目描述 給定一個整數數組 nums&#xff0c;它按非降序排列&#xff08;即 nums[i] < …

excel僅復制可見單元格,僅復制篩選后內容

背景 我們經常需要將內容分給不同的人&#xff0c;做完后需要合并 遇到情況如下 那是因為直接選擇了整列&#xff0c;當然不可以了。 下面提供幾種方法&#xff0c;應該都可以 直接選中要復制區域然后復制&#xff0c;不要選中最上面的列alt;選中可見單元格正常復制&#xff…

微信小程序實現拖拽盒子效果

要實現一個當前盒子高度由里面的盒子進行支配高度拖拽的效果 // wxml<view class"exmation-item" wx:elif"{{type4}}"> <view class"exmation-item-drag-box" id"drag-box"> <!-- 內容 --><view class"exm…

支持向量回歸(SVR:Support Vector Regression)用于A股數據分析、預測

簡單說明 支持向量回歸是一種用來做預測的數學方法,屬于「機器學習」的一種。 它的目標是找到一條「最合適的線」,能夠大致描述數據點的趨勢,并允許數據點離這條線有一定的誤差(不要求所有點都完全落在這條線上)。 可以把它想象成:找到一條「寬帶」或「隧道」,大部分…

透明部署、旁路邏輯串聯的區別

背景 需討論防火墻到底是串聯&#xff0c;還是旁掛。 通常串聯指的就是“透明部署”&#xff0c;旁掛指的就是“邏輯串聯”。 透明部署&#xff08;串聯&#xff09; 也稱為透明模式或橋接模式&#xff0c;是一種安全設備的部署方式。在這種模式下&#xff0c;安全設備被串聯…

LabVIEW水位監控系統

LabVIEW開發智能水位監控系統通過集成先進的傳感技術與控制算法&#xff0c;為工業液體存儲提供精確的水位調控&#xff0c;保證了生產過程的連續性與安全性。 項目背景 在化工和飲料生產等行業中&#xff0c;水位控制的準確性對保證生產安全和提高產品質量至關重要。傳統的水…

深入淺出 Android AES 加密解密:從理論到實戰

深入淺出 Android AES 加密解密&#xff1a;從理論到實戰 在現代移動應用中&#xff0c;數據安全是不可忽視的一環。無論是用戶隱私保護&#xff0c;還是敏感信息的存儲與傳輸&#xff0c;加密技術都扮演著重要角色。本文將以 AES&#xff08;Advanced Encryption Standard&am…

hadoop-yarn常用命令

一、YARN命令介紹 1. YARN命令簡介 YARN提供了一組命令行工具&#xff0c;用于管理和監控YARN應用程序和集群。 2. yarn application命令 (1) yarn application命令的基本語法 yarn application命令的基本語法如下&#xff1a; yarn application [genericOptions] [comma…

R語言的語法糖

R語言的語法糖 引言 在編程語言中&#xff0c;所謂的“語法糖”是指那些使得程序員能夠以更簡潔、直觀的方式書寫代碼的語法形式。R語言作為一種用于統計分析和數據可視化的編程語言&#xff0c;具有豐富的功能和靈活的語法。本文將深入探討R語言中的語法糖&#xff0c;幫助讀…

React Fiber框架中的Render渲染階段——workLoop(performUnitOfWork【beginWork與completeWork】)

觸發渲染過程——renderRoot renderRoot 是一個函數&#xff0c;用于觸發渲染工作。它通常會調用并遞歸地執行一系列的渲染任務&#xff0c;直到完成整個更新過程。這個過程包括執行 Fiber 樹中的 beginWork 和 completeWork&#xff0c;以及渲染新狀態或 DOM。 function ren…

【優先算法】思還故里閭,欲歸道無因 - 前綴和

本篇博客給大家帶來的是前綴和算法的知識點, 也是一樣通過OJ題理解,掌握,應用該算法. &#x1f40e;文章專欄: 算法 &#x1f680;若有問題 評論區見 ? 歡迎大家點贊 評論 收藏 分享 如果你不知道分享給誰,那就分享給薯條. 你們的支持是我不斷創作的動力 . 王子,公主請閱&…