云原生部署_Docker入門

Docker是啥

????????Docker是一個開源的容器化平臺,可以幫助開發者將應用程序其依賴的環境打包成一個可移植、可部署的容器。

????????Docker的主要目標是通過容器化技術,實現應用程序的快速部署、可移植性和可擴展性,從而簡化應用程序的開發、測試和部署過程。

Docker與傳統虛擬機的區別

????????虛擬機是一個主機模擬出多個主機(多個虛擬機),需要先擁有獨立的系統。傳統虛擬機,利用hypervisor,模擬出獨立的硬件和系統,在此之上創建應用。(與主機而言,是同等地位)

????????docker 是在主機系統中建立多個應用及配套環境,把應用及配套環境獨立打包成一個單位,是進程級的隔離。(于主機而言是個運行的進程)

Docker相對虛擬機的優勢:

  • 輕量級: 容器與宿主機共享操作系統內核,因此容器本身非常輕量級,啟動和停止速度快,資源占用少。
  • 可移植性: 容器可以在任何支持相應容器運行時的系統上運行,無需關注底層操作系統的差異,提供了高度的可移植性。
  • 快速部署: 容器化應用程序可以通過簡單的操作進行打包、分發和部署,減少了部署過程的復雜性和時間成本。
  • 彈性擴展: 可以根據應用程序的需求快速創建、啟動和停止容器實例,實現應用程序的彈性擴展和負載均衡。
  • 環境隔離: 每個容器都具有獨立的運行環境,容器之間相互隔離,不會相互干擾,提供了更好的安全性和穩定性。

Docker與Maven 類比

Docker Registry:可分為 公有Docker Registry 和 私有Docker Registry。 最常?的Docker Registry莫過于官方的 Docker Hub, 這也是默認的Docker Registry.?

Docker架構

Docker Registry:可分為 公有Docker Registry 和 私有Docker Registry。 最常?的Docker Registry莫過于官方的 Docker Hub, 這也是默認的Docker Registry.?

Images( Docker鏡像):Docker鏡像是一個只讀模板,它包含創建 Docker容器的說明。

Container(容器):容器是鏡像的可運行實例。鏡像和容器的關系有點類似于面向對象中,類和對象的關系。

Client(客戶端):Docker客戶端是 Docker的用戶界面,它可以接受用戶命令和配置標識。

Docker命令

Docker安裝

????????Docker 是一個開源的商業產品,有兩個版本:社區版(Community Edition,縮寫為 CE)和企業版(Enterprise Edition,縮寫為 EE)

  • 安裝:

????????yum install -y docker-ce-3:24.0.2-1.el7.x86_64 # 這是指定版本安裝

  • 啟動并加入開機啟動:

????????systemctl start docker && systemctl enable docker

  • 驗證是否安裝成功/docker版本查看

????????docker version

鏡像相關命令

  • 搜索鏡像

????????docker search java :?在Docker Hub中搜索含有 java這個關鍵詞的鏡像倉庫

  • 下載鏡像

????????docker pull java:8 //?下載最新版本的 Java鏡像,如果要下載指定版本則在java后面加冒號指定版本

  • 列出下載鏡像

????????docker images

  • 刪除鏡像

????????docker rmi java? ?//?強制刪除加 -f

容器相關命令

1、新建并啟動容器

docker run -d -p 91:80 nginx

docker run命令即可新建并啟動一個容器,該命令是最常用的命令,它有很多選項,下面將列舉一些常用的選項。

docker run命令創建容器時,會先檢查本地是否存在指定鏡像。如果本地不存在該名稱的鏡像, Docker就會自動從 Docker Hub下載鏡像并啟動一個 Docker容器。

-d選項:表示后臺運行

-P選項:隨機端口映射

-p選項:指定端口映射,有以下四種格式。

-- ip:hostPort:containerPort

-- ip::containerPort

-- hostPort:containerPort

-- containerPort

--net選項:指定網絡模式,該選項有以下可選參數:

--net=bridge:默認選項,表示連接到默認的網橋。

--net=host:容器使用宿主機的網絡。--net=container:NAME-or-ID:告訴 Docker讓新建的容器使用已有容器的網絡配置。

--net=none:不配置該容器的網絡,用戶可自定義網絡配置。

2、列出運行中的容器

docker ps

3、停止容器

docker stop f0b1c8ab3633 -- 容器id

4、強制停止容器

docker kill f0b1c8ab3633

5、啟動已經停止的容器

docker start f0b1c8ab3633??

6、查看容器所有信息

docker inspect f0b1c8ab3633

7、查看容器日志

docker container logs f0b1c8ab3633

8、查看容器里的進程

docker top f0b1c8ab3633

9、容器與宿主機相互復制文件

docker cp 容器id:要拷貝的文件在容器里面的路徑 宿主機的相應路徑

如:docker cp 7aa5dc458f9d:/etc/nginx/nginx.conf /mydata/nginx

docker cp 要拷貝的宿主機文件路徑 容器id:要拷貝到容器里面對應的路徑

10、進入正在運行的容器

docker exec -it f0b1c8ab3633 /bin/bash (有的容器需要把 /bin/bash 換成 sh)

//?如果docker run命令運行容器的時候,沒有使用-it參數,就要用這個命令進入容器。一旦進入了容器,就可以在容器的 Shell 執行命令了

11、刪除容器

docker rm f0b1c8ab3633 //?該命令只能刪除已停止的容器,如需刪除正在運行的容器,可使用-f參數

Dockerfile構建Docker鏡像

Dockerfile是一個文本文件,其中包含了若干條指令,指令描述了構建鏡像的細節。

在Dockerfile所在路徑執行以下命令構建鏡像:docker build -t nginx:tuling .

其中,-t指定鏡像名字,命令最后的點(.)表示Dockerfile文件所在路徑

使用Dockerfile構建微服務鏡像

以項目tulingmall-member為例,將該微服務的可運行jar包構建成docker鏡像

1、將jar包上傳linux服務器/root/tulingmall/tulingmall-member目錄,在jar包所在目錄創建名為Dockerfile的文件。

2、在Dockerfile中添加以下內容

# 基于哪個鏡像

From java:8

# 復制文件到容器

ADD tulingmall-member-0.0.5.jar? /tulingmall-member-0.0.5.jar

# 聲明需要暴露的端口

EXPOSE 8877

# 配置容器啟動后執行的命令

ENTRYPOINT java ${JAVA_OPTS} -jar /tulingmall-member-0.0.5.jar

3、使用docker build命令構建鏡像

docker build -t tulingmall-member:0.0.5 .

4、啟動鏡像,加-d可在后臺啟動

docker run -d -p 8877:8877 tulingmall-member:0.0.5

加上JVM參數啟動:

# --cap-add=SYS_PTRACE? 這個參數是讓docker能支持在容器里能執行jdk自帶類似jinfo,jmap這些命令,如果不需要在容器里執行這些命令可以不加

docker run -d -p 8877:8877 \

-e SPRING_CLOUD_NACOS_CONFIG_SERVER_ADDR=192.168.65.174:8848 \

-e JAVA_OPTS='-Xmx1g -Xms1g -XX:MaxMetaspaceSize=512m' \

--cap-add=SYS_PTRACE \

tulingmall-member:0.0.5

5、訪問會員服務接口

服務部署完成,即可以訪問了。

將微服務鏡像發布到阿里云遠程鏡像倉庫

將微服務鏡像發布到私有鏡像倉庫

1.?搭建私有docker鏡像倉庫

2.上傳鏡像到私有倉庫

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

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

相關文章

【大數據專欄】大數據框架-Apache Druid Overview

目錄 Architecture Advantages and disadvantages 從架構以及設計可以得出結論,Durid不支持ACID事務,基于時間戳列和維度列去查詢,所以適合基于時間做分組和學列的查詢操作。 Advantages優勢: 實時數據攝取與查詢 支持秒級數據攝…

云平臺面試內容(一)

1. 云計算的優點、服務模型區別及云部署模式 云計算優點: 云計算具有顯著的優勢,包括無需自建機房和硬件投入,資源即開即用并支持彈性伸縮,按需付費使成本透明可控。企業可以在數分鐘內完成全球范圍的部署,縮短上線周期。同時云平臺提供高可用性和安全性,多副本容災保證數…

嵌入式 - 硬件:51單片機(2)

本節重點:1. GPIO輸入模式、輸出模式2. 按鍵工作原理(GPIO輸入)3. 中斷概念4. 中斷源概念、中斷源個數、哪幾個中斷源5. 外部中斷、定時器中斷概念6. 中斷處理流程:7. 51單片機中定時器的個數?類型8. 16位定時器和8位…

C語言中奇技淫巧07-使用GCC棧保護選項檢測程序棧溢出

-fstack-protector 是 GCC 和 Clang 編譯器提供的一種棧保護(Stack Smashing Protection, SSP) 機制,用于檢測和防御常見的緩沖區溢出攻擊(特別是棧溢出)。它通過在函數的棧幀中插入特殊的“金絲雀值”(can…

.NET 8.0 Web API JWT 身份驗證和基于角色的授權

在當今的數字環境中,保護 Web 應用程序的安全至關重要。隨著 .NET 8.0 的不斷發展,它提供了強大的工具來確保您的 API 既安全又高效。 示例代碼:https://download.csdn.net/download/hefeng_aspnet/91490262 如果您喜歡此文章&#xff0c…

ZYNQ SDK軟件在線調試

1、然后右鍵項目->debug as->launch on hardware2、從左到右分別是:運行程序到設置的斷點暫停運行終止斷開連接步進(進入函數內部)跳過(不進入函數內部)跳出函數3、雙擊添加斷點,然后點擊運行可以讓程…

四大金剛之計算機操作系統

1. 進程和線程的區別?創建線程的代價比創建進程小嗎?進程是資源分配和調度的基本單位;線程是 CPU 調度的基本單位。進程有獨立的地址空間,線程共享進程地址空間。創建/銷毀進程開銷大,線程開銷小。是的,因為…

redis--redis.conf的相關配置問題

關于redis.conf內的相關重要的配置介紹 1. bind 配置 僅僅設置bind,還需要搭配下面的rotected-mode 配置才能外部ip進行連接 功能:設置 Redis 監聽的 IP 地址,決定哪些設備可以連接到 Redis 服務器。 bind 127.0.0.1:只允許本機&a…

unsloth 筆記:從最近的檢查點繼續微調

檢查點(checkpointing)可以把微調進度保存下來,這樣可以中途暫停,隨后繼續訓練。首先需要在 Trainer 的參數里添加 save_strategy 和 save_steps。trainer SFTTrainer(....args TrainingArguments(....output_dir "output…

DevOps平臺選型指南:破解研發效率瓶頸,適配金融/政務/國產化場景的5大關鍵指標

在數字化轉型的浪潮中,軟件研發效能已成為企業的核心競爭力。然而,許多團隊在追求敏捷與高速交付的過程中,常常會遇到工具鏈割裂、流程冗長、環境混亂等效率瓶頸。選擇一個合適的、一體化的DevOps平臺,是破解這些瓶頸、實現研發運…

【面試向】元宇宙介紹

屬于基礎知識介紹,主要目的是對這一概念有技術層面的理解,有前瞻性的觀點,幫助大家在面試中給出得體的表述。 1. 什么是元宇宙? 元宇宙本質上是一個融合了數字與現實、由技術構建的 “沉浸式虛擬空間”,是一個 “超越…

FreeMarker快速入門指南

FreeMarker快速入門指南 FreeMarker是一個基于模板和數據模型生成文本輸出的Java庫。它廣泛應用于Web開發、代碼生成、郵件模板等場景。本文將帶你快速上手FreeMarker的核心概念和基本用法。 什么是FreeMarker FreeMarker是一個模板引擎,它將模板文件(.f…

Nginx主配置文件

一,Nginx基本介紹1,nginx概念Nginx 是一款輕量級、高性能的服務器軟件,核心能力是 “處理網絡請求”,被廣泛用于網站、App 的后端架構中。Nginx 就像一個 “高效的網絡交通指揮官”,核心價值是用最少的資源&#xff0c…

基于ResNet50的智能垃圾分類系統

基于ResNet50的智能垃圾分類系統:從理論到實踐的完整指南 源碼獲取https://mbd.pub/o/bread/YZWXlZ1yZg 引言:智能垃圾分類的時代背景與意義 隨著城市化進程的加速和人口數量的增長,垃圾處理問題日益成為全球性的環境挑戰。傳統的垃圾分類…

災難性遺忘:神經網絡持續學習的核心挑戰與解決方案

本文由「大千AI助手」原創發布,專注用真話講AI,回歸技術本質。拒絕神話或妖魔化。搜索「大千AI助手」關注我,一起撕掉過度包裝,學習真實的AI技術! 1. 災難性遺忘的定義與核心問題 災難性遺忘(Catastrophic…

OPENPPP2 —— IP標準校驗和算法深度剖析:從原理到SSE2優化實現

🔍 OPENPPP2 —— IP標準校驗和算法深度剖析:從原理到SSE2優化實現 引用: IP校驗和算法:從網絡協議到SIMD深度優化IP校驗和算法:從標量到SIMD的高級優化(SSE4.1) GDB online Debugger C17 Co…

4.4 機器學習 - 集成學習

集成學習通過 “組合多個基礎模型” 提升泛化能力,核心分為并行集成(Bagging)、串行集成(Boosting) 和多層集成(Stacking) 三大范式,分別對應 “降方差”“降偏差”“兼顧偏差與方差…

機器學習 - 使用 ID3 算法從原理到實際舉例理解決策樹

一、什么是決策樹1.基本概念決策樹是一種樹形結構,由結點(node) 和有向邊(directed edge) 組成。其中結點分為兩類:內部結點(internal node):表示一個屬性(特…

【期末復習】嵌入式——S5PV210開發板

本文為嵌入式課程期末復習,僅供參考,所用課本:嵌入式Linux操作系統(李建祥著)。第一章1.1 簡述嵌入式微處理器數據存儲格式的大,小端模式。大端模式是指數據的高字節保存在內存的低地址中,而數據…

word文檔結尾批量插入圖片 docx批量插入圖片 指定幾張

如果你有一些word文檔。比如工作總結。你想每一個文檔里面都插入幾張圖片。插入到每個文檔的結尾,那么你可以使用這個工具。首先準備好你的文檔。然后把它們拖進右邊的方框中。拖動的時候,拖動第一個,然后準備好你的圖片。把你的圖片全部拖動…