Docker 學習(一)

一、Docker 核心概念

Docker?是一個開源的容器化平臺,允許開發者將應用及其所有依賴(代碼、運行時、系統工具、庫等)打包成一個輕量級、可移植的“容器”,實現?一次構建,隨處運行

1、容器(Container)

  • 輕量級、可執行的軟件包,包含應用及其所有依賴(代碼、運行時、系統工具、庫等)。

  • 基于鏡像運行,獨立于宿主機操作系統,共享宿主內核。

2、鏡像(Image)

  • 只讀模板,用于創建容器。

  • 由多層文件系統疊加而成(UnionFS),支持復用和增量更新。

3、倉庫(Registry)

  • 存儲和分發鏡像的服務,如?Docker Hub(默認公共倉庫)、私有倉庫(Harbor)。

4、Docker 與 虛擬機 的比較

作為一種輕量級的虛擬化方式,Docker 在運行應用上跟傳統的虛擬機方式相比具有如下 顯著優勢:
  • Docker 容器很快,啟動和停止可以在秒級實現,這相比傳統的虛擬機方式(數分鐘)要快得多;
  • Docker 容器對系統資源需求很少,一臺主機上可以同時運行數千個
  • Docker 容器(在 IBM 服務器上已經實現了同時運行! OK 量級的容器實例);
  • Docker 通過類似 Git 設計理念的操作來方便用戶獲取、分發和更新應用鏡像,存儲復用,增量更新;
  • Docker 通過 Dockerfile 支持靈活的自動化創建和部署機制,以提高工作效率,并標準化流程

二、Docker 的安裝配置

1、linux 安裝(CentOS)

自己構建yum倉庫源
# step 1: 安裝必要的一些系統工具yum install -y yum-utils# Step 2: 添加阿里云鏡像源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo# Step 3: 安裝Dockeryum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin# Step 4: 開啟Docker服務
systemctl enable --now docker# Step 5:驗證安裝
docker version

2、配置國內鏡像加速器

[root@centos ~]# vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://docker.m.daocloud.io","https://hub-mirror.c.163.com","https://mirror.baidubce.com","https://docker.nju.edu.cn"]
}
[root@centos ~]# systemctl daemon-reload
[root@centos ~]# systemctl restart docker# 驗證
[root@centos ~]# docker pull busybox    //拉取鏡像
Using default tag: latest
latest: Pulling from library/busybox
Digest: sha256:498a000f370d8c37927118ed80afe8adc38d1edcbfc071627d17b25c88efcab0
Status: Image is up to date for busybox:latest
docker.io/library/busybox:latest
[root@centos ~]# docker images         //查看本地已有鏡像的基本信息
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
busybox      latest    31311c5853a2   5 months ago   4.27MB
其中鏡像的ID信息十分重要, 它唯一標識了鏡像。
在使用鏡像ID的時候, 一般可以使用該ID的前若干個字符組成的可區分串來替代完整的ID。

三 、Docker 核心命令

鏡像管理

1、docker ?images? ——查看本地鏡像

2、docker ?pull? ubuntu:latest ——拉取鏡像

從穩定性上考慮,不要在生產環境中忽略鏡像的標簽信息或使用默認的latest 標記的鏡像。

3、docker ?rmi ?<image_id>或TAG? ——刪除鏡像,加上 -f 便是強制刪除

注意:當有該鏡像創建的容器存在時, 鏡像文件默認是無法被刪除的。但是通常并不推薦使用-f參數來強制刪除一個存在容器依賴的鏡像。 正確的做法是,先刪除依賴該鏡像的所有容器, 再來刪除鏡像。

4、docker ?tag ?ubuntu:latest ?myubuntu:latest ——為本地鏡像任意添加新的標簽

5、?docker? search? nginx? ——搜索官方倉庫中的鏡像

6、docker ?build ?-t ?myapp:v1 ?. ——構建鏡像

7、docker ?save ?myapp:v1 ?> ?myapp.tar ——導出鏡像

8、docker ?load ?< ?myapp.tar ——從文件導入鏡像

?

容器管理:

1、docker? run? web? /bin/echo? "hello , world !! "?——創建容器并輸出字符串

當利用 docker ?run 來創建并啟動容器時, Docker 在后臺運行的標準操作包括:

  • 查本地是否存在指定的鏡像,不存在就從公有倉庫下載;
  • 利用鏡像創建一個容器,并啟動該容器;
  • 分配 一個文件系統給容器,并在只讀的鏡像層外面掛載一層可讀寫層
  • 從宿主主機配置的網橋接口中橋接一個虛擬接口到容器中去;
  • 從網橋的地址池配置一個 IP 地址給容器;
  • 執行用戶指定的應用程序;
  • 執行完畢后容器被自動終止。

2、docker? run? -it? web? /bin/echo? "hello , world !! "? ——啟動一個bash終端,允許用戶進入交互

-t 選項讓Docker 分配一個 偽終端 并綁定到容器的標準輸入上,-i?則讓容器的標準輸入保持打開

3、docker ?run ?-d ?--name ?web ?nginx ——啟動容器(后端運行)

4、docker ?exec ?-it ?web ?/bin/bash —— 進入容器交互終端

5、docker ?ps ?-a ——查看所有容器(包括已停止)

6、docker ?stop/pause? web?——停止/暫停容器

7、docker ?start ?web?——啟動已停止的容器

8、docker ?rm ?web ——刪除容器? ?docker? rm? ?`docker? ps? -aq` ——刪除所有容器

9、docker ?logs ?web? ——查看容器日志,其他可通過--help 了解

10、docker? export? -o file.tar? name 或? docker? export? name? >? file.tar ——導出容器到 tar文件中。

11、docker? import? file.tar - name/ubuntu:18.04? ? ——導入容器

12、docker ?cp web:/etc/nginx/nginx.conf ?./? ?——從容器復制文件到宿主機

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

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

相關文章

007 訂單支付超時自動取消訂單(rabbitmq死信隊列 mybatis)

文章目錄 死信隊列RabbitMQ 配置類 RabbitMQConfig.java生產者 OrderTimeoutProducer.java消費者 OrderTimeoutConsumer.java應用配置 application.ymlpom.xml 依賴實體類 Order.java&#xff08;不變&#xff09;Mapper 接口 OrderMapper.java&#xff08;不變&#xff09;服務…

計算機畢業設計SpringBoot+Vue.js智慧圖書管理系統(源碼+文檔+PPT+講解)

溫馨提示&#xff1a;文末有 CSDN 平臺官方提供的學長聯系方式的名片&#xff01; 溫馨提示&#xff1a;文末有 CSDN 平臺官方提供的學長聯系方式的名片&#xff01; 溫馨提示&#xff1a;文末有 CSDN 平臺官方提供的學長聯系方式的名片&#xff01; 作者簡介&#xff1a;Java領…

《論數據分片技術及其應用》審題技巧 - 系統架構設計師

論數據分片技術及其應用寫作框架 一、考點概述 本論題“論數據分片技術及其應用”主要考察的是軟件工程中數據分片技術的理解、應用及其實際效果分析。考點涵蓋以下幾個方面&#xff1a; 首先&#xff0c;考生需對數據分片的基本概念有清晰的認識&#xff0c;理解數據分片是…

【每日學點HarmnoyOS Next知識】web加載pdf、Toggle禁用、Grid多次渲染問題、Web判斷是否存在title、 List側滑欄關閉

【每日學點HarmnoyOS Next知識】web加載pdf、Toggle禁用、Grid多次渲染問題、Web判斷是否存在title、 List側滑欄關閉 1、HarmonyOS Web組件加載本地pdf文件后&#xff0c;默認顯示標題和下載按鈕&#xff0c;可以隱藏或者有對應的操作這個title的API嗎&#xff1f; 隱藏PDF操…

下載 MindSpore 配置 PyTorch環境

以下是下載 MindSpore 并配置 PyTorch 環境的詳細步驟&#xff0c;適用于常見的 Linux/Windows 系統&#xff08;以 NVIDIA GPU 為例&#xff09;&#xff1a; 一、環境準備 1. 硬件與軟件檢查 GPU 支持&#xff1a;確保使用 NVIDIA 顯卡&#xff0c;通過 nvidia-smi 查看驅動…

三、數據提取

利用 requests 可以獲取網站頁面數據&#xff0c;但是 requests 返回的數據中包含了一些冗余數據&#xff0c;我們需要在這些數據集中提取自己需要的信息。所以我們要學會在數據集中提取自己需要的數據。 需要掌握的知識點如下&#xff1a; json 數據提取 jsonpath 語法 靜態…

Qt | 實戰繼承自QObject的IOThread子類實現TCP客戶端(安全銷毀)

點擊上方"藍字"關注我們 01、QThread >>> start() 啟動線程,調用后會執行 run() 方法。 run() 線程的入口點,子類化 QThread 時需要重寫此方法以定義線程的執行邏輯。 quit() 請求線程退出,線程會在事件循環結束后終止。 exit(int returnCode = 0) 退出…

int new_pos = (pos + delta + 9) % 9 化曲為直算法

公式 int new_pos (pos delta 9) % 9; 是一個常見的 循環數組索引計算 方法&#xff0c;用于處理圓圈排列中的位置計算。這個公式可以總結出一個普遍的規律&#xff0c;適用于任何循環數組或圓圈排列的場景。 普遍規律 假設有一個長度為 ( n ) 的循環數組&#xff08;或圓圈…

生成一個日期時間序列,從‘2024-12-03‘開始,每小時遞增 oracle 轉為達夢

-------------------------------生成一個日期時間序列&#xff0c;從2024-12-03開始&#xff0c;每小時遞增---------------------------- ---原oracle : SELECT to_date(2024-12-03, yyyy-mm-dd) (ROWNUM - 1) / 24 data_time FROM dual CO…

前端學習——HTML

VSCode常用快捷鍵 代碼格式化&#xff1a;ShiftAltF 向上或向下移動一行&#xff1a;AltUp或AltDown 快速復制一行代碼&#xff1a;ShiftAltUp或者ShiftAltDown 快速替換&#xff1a;CtrlH HTML標簽 文本標簽 定義著重文字 定義粗體文字 定義斜體文字 加重語氣 刪除字 無特…

Hadoop之02:MR-圖解

1、不是所有的MR都適合combine 1.1、map端統計出了不同班級的每個學生的年齡 如&#xff1a;(class1, 14)表示class1班的一個學生的年齡是14歲。 第一個map任務&#xff1a; class1 14 class1 15 class1 16 class2 10第二個map任務&#xff1a; class1 16 class2 10 class…

C++核心編程之STL

STL初識&#xff1a;從零開始的奇幻冒險 1 STL的誕生&#xff1a;一場代碼復用的革命 很久很久以前&#xff0c;在編程的世界里&#xff0c;開發者們每天都在重復造輪子。無論是數據結構還是算法&#xff0c;每個人都得從頭開始寫&#xff0c;仿佛在無盡的沙漠中尋找綠洲。直到…

【Python】OpenCV算法使用案例全解

OpenCV算法使用案例全解 前言 OpenCV&#xff08;Open Source Computer Vision Library&#xff09;是一個開源的計算機視覺和機器學習軟件庫&#xff0c;它提供了大量的圖像和視頻處理功能。從簡單的圖像濾波到復雜的三維重建&#xff0c;OpenCV涵蓋了計算機視覺領域的眾多算…

Redis的持久化-RDBAOF

文章目錄 一、 RDB1. 觸發機制2. 流程說明3. RDB 文件的處理4. RDB 的優缺點 二、AOF1. 使用 AOF2. 命令寫?3. 文件同步4. 重寫機制5 啟動時數據恢復 一、 RDB RDB 持久化是把當前進程數據生成快照保存到硬盤的過程&#xff0c;觸發 RDB 持久化過程分為手動觸發和自動觸發。 …

Python Cookbook-2.29 帶版本號的文件名

任務 如果你想在改寫某文件之前對其做個備份&#xff0c;可以在老文件的名字后面根據慣例加上三個數字的版本號。 解決方案 我們需要編寫一個函數來完成備份工作: def VersionFile(file_spec, vtypecopy):import os,shutilif os.path.isfile(file_spec):#檢查vtype參數if v…

CCF-CSP認證 202104-1灰度直方圖

題目描述 思路 首先輸入矩陣長度、矩陣寬度和灰度范圍&#xff0c;結果數組長度可固定&#xff0c;其中的元素要初始化為0。在輸入灰度值的時候&#xff0c;結果數組中以該灰度值為索引的元素值1&#xff0c;即可統計每個灰度值的數量。 代碼 C版&#xff1a; #include <…

水果識別系統 | BP神經網絡水果識別系統,含GUI界面(Matlab)

使用說明 代碼下載&#xff1a;BP神經網絡水果識別系統&#xff0c;含GUI界面&#xff08;Matlab&#xff09; BP神經網絡水果識別系統 一、引言 1.1、研究背景及意義 在當今科技迅速發展的背景下&#xff0c;人工智能技術尤其是在圖像識別領域的應用日益廣泛。水果識別作為…

如何在網頁上顯示3D CAD PMI

在現代制造業中&#xff0c;3D CAD模型已成為產品設計和制造的核心。為了更有效地傳達設計意圖和制造信息&#xff0c;產品和制造信息&#xff08;PMI&#xff09;被嵌入到3D模型中。然而&#xff0c;如何在網頁上清晰、準確地顯示這些3D CAD PMI&#xff0c;成為了一個重要的技…

Git基本命令索引

GIT基本命令索引 創建代碼庫修改和提交代碼日志管理遠程操作操作分支 創建代碼庫 操作指令初始化倉庫git init克隆遠程倉庫git clone 修改和提交代碼 操作指令查看文件狀態git status文件暫存git add文件比較git diff文件提交git commit回滾版本git reset重命名或者移動工作…

基于Selenium的Python淘寶評論爬取教程

文章目錄 前言1. 環境準備安裝 Python&#xff1a;安裝 Selenium&#xff1a;下載瀏覽器驅動&#xff1a; 2. 實現思路3. 代碼實現4. 代碼解釋5. 注意事項 前言 以下是一個基于 Selenium 的 Python 淘寶評論爬取教程&#xff0c;需要注意的是&#xff0c;爬取網站數據應當遵守…