docker-2

27.構建python應用鏡像-dockerfile實踐項目

1.基于官方的鏡像,構建python代碼運行環境 dockerfile

2.運行鏡像,開啟一個讀寫的容器空間(定制操作,將代碼丟進去,運行調試)

3.提交這個變化的容器層數據,提交新的鏡像 docker commit

4.運行新鏡像,加入參數,運行的容器可以端口映射且訪問頁面

5.這里還要寫容器內的應用程序的啟停腳本:-v 將腳本映射到容器去

?--改進:鏡像只提供一個運行環境,其他數據:配置文件、源碼、腳本,都盡量使用-v 映射進去方便進行維護

28.容器的無狀態和有狀態

容器運行的nginx產生的數據可以隨意丟棄,稱為無狀態

容器運行的數據庫產的數據很重要,需要對數據持久化存儲,稱為有狀態

dockerfile中volume參數的作用:將數據映射出來,防止運維運行忘記主動使用-v參數

29.Docker存儲卷用法

volume數據卷

作用:避免重要的數據,因容器重啟而丟失,避免容器不斷變大,產生大朗的數據,容器最終可以提供為鏡像

可以使用-v參數,主動修改 -v 宿主機:容器:權限,權限2

30.搭建nginx+centos鏡像?

cd /opt/dockerfile/7.9test
curl -o ./Centos-7.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o ./epel-7.repo http://mirrors.aliyun.com/repo/epel-7.repocat >Dockerfile <<'EOF'
> FROM centos:7.9.2009
> RUN rm -rf /etc/yum.repos.d/*
> ADD *.repo /etc/yum.repos.d/
> RUN yum makecache fast \
> && yum install nginx -y \
> && yum clean all
> EXPOSE 80
> CMD ["nginx","-g","daemon off;"]
> EOFdocker bulit -t nginx .

之后 dokcer run -d -P nginx? 然后訪問端口發現報錯403.根據?docker部署nginx報403?拍錯

31.cmd、entrypoint關系

32.dockerfile的優化方案(官網里有)

33.Dockerfile多階段構建jar包

每一個鏡像,都可以作為公共鏡像,讓其他鏡像再使用

centos + jdk環境

運行jar包,下載對應jar包,docker run -v 把jar映射到容器內 使用鏡像 java -jar xxx.jar包

34.mysql為什么要加入-v 一些參數,才能容器化啟動?

因為mysql容器中有entryponit中的腳本中,必須運行的時候必須要有指定的 參數才能啟動

35.docker history完整信息截取

docker history -- help 有一個完全信息參數? ?|? gerp -i +需要查詢的關鍵信息

36.拿到鏡像怎么做?

首先查詢docker hub中文檔,再查看該鏡像的entrypoint腳本中需要指定的參數,怎么運行

37.提取容器ip格式化語法---format語法學一下

docker inspect `docker ps -aq`|grep -i IPaddress

docker inspect --format='{{.NetworkSettings.Networks.bridge.IPAddress}}' 容器名

# 簡單玩法, 基于key 提取value,格式化主機名,容器ip

docker inspect --format='{{.Name}}   {{.NetworkSettings.Networks.bridge.IPAddress}}'  `docker ps -aq`

38.容器部署zabbix、jenkins等

39.yaml語法

基于容器化部署的應用,都是使用yaml語法

json網站格式,理解yaml格式類型(主要是字典和列表),使用工具yaml轉json對應看

{? }--字典,里面每一個,就是一個元素---網站對應看


version: '3'      # yaml語法版本,版本越高,支持字段就越多,得看官網文檔,有有哪些字段語法
services:		   #定義服務,名字myjenkins:		# myenkins服務image: 'jenkins/jenkins:latest'  # 鏡像名container_name: myjenkins   # 你運行容器的名字 restart: always   # 容器重啟策略privileged: true		# 特權化運行容器user: root		# 制定容器進程執行用戶 ports:- '8080:8080'  - '50000:50000'volumes:- '/linux0224_data/jenkins:/var/jenkins_home'- '/var/run/docker.sock:/var/run/docker.sock'- '/usr/bin/docker:/usr/bin/docker'- '/root/.ssh:/root/.ssh'

40.docker-compse使用(注意有縮進)

1.安裝 2.寫docker-compose.yml? 3.語法校驗docker-compose.yml?,然后運行docker-compose up -d

41.私有倉庫docker-harbor

1.下載harbor軟件包、yaml文件

2.查看解壓文件,修改相關參數? ?運行部署腳本

3.修改docker配置,支持非https鏡像倉庫

4.推送到私有鏡像倉庫,需要修改鏡像tag,指定項目地址

5.登錄docker harbor? login輸入賬號密碼才能推和拉取鏡像

42.私有registry倉庫,純api形式的倉庫

43.docker所有網橋信息查詢

docker inspect ?`docker network ls -q` |grep -i '"Subnet"'

docker network ls

docker查看資源信息的命令

docker inspect image xx

docker inspect container xx

docker inspect network ?xx

44.docker網橋與虛擬網絡接口的關系

45.docker網橋的增刪改查

46.容器訪問控制

容器和宿主機之間通信 宿主機和外網之前通信

容器與容器之間的通信:使用同一個網橋

47.容器通信方式

網橋模式:一般docker network ls name為bridge的是dokcer0

docker0為二層交換機,分配ip地址

-net 的參數含義(網橋有用默認的網橋,也有自創的,也有用已存在的網橋)

主機模式:容器不創建單獨的網絡環境,直接使用宿主機的network

none:單機無網絡環境的容器,需要計算產生數據的一些服務,比如AI 深度學習純計算服務

48.網橋創建的時候,可以使用網絡工具? 百度搜 子網創建器

49.brctl show 、ifconfig:br-開頭的都是自建網橋、docker network ls

50.查看網橋和容器的關系,查看網橋有哪些容器使用?

docker inspect 網橋 -->查看該網橋的子網網段 和 containers中使用該網橋的容器名及ip

51.如何使用自建網橋br-X,創建一個veth接口: docker run -d -p XXX:XXX --network=該網橋id 鏡像,使用該網橋就自動創建相應的虛擬網絡接口

52.修改docker0網段

查看docker0信息 docker inspect bridge

docker run -it busybox? --- ifconfig查看docker0網段信息

公司對容器網絡環境有要求,給了ip范圍,說了你們的容器的環境只能是192.168.15.0/24,去修改docker配置文件 添加zip?192.168.15.1/24

53.網絡總結

1. 橋接模式(Bridge)

優點

  • 隔離性好:每個容器都有獨立的網絡命名空間,相互之間隔離,不會互相干擾。
  • 簡單易用:橋接網絡是Docker的默認網絡模式,無需額外配置,容器可以直接進行通信。
  • 支持跨主機通信:雖然橋接模式本身主要適用于單機部署,但可以通過端口映射或Overlay網絡實現跨主機通信。
  • 支持端口映射:方便外部訪問容器內的服務。

缺點

  • 性能損失:橋接網絡需要進行網絡地址轉換(NAT),可能會引入一定的性能損失。
  • 端口沖突:如果多個容器使用相同的端口號,可能會導致端口沖突。
  • 網絡隔離性限制:雖然容器間網絡隔離,但容器仍可通過宿主機的網橋進行通信,這可能帶來一定的安全風險。

2. 主機模式(Host)

優點

  • 性能最優:容器直接使用宿主機的網絡接口和IP地址,無需進行額外的網絡地址轉換,性能最高。
  • 簡化網絡配置:容器與宿主機共享網絡命名空間,無需進行端口映射或網絡轉發配置。
  • 無需網絡策略:只要能訪問到宿主機,就能訪問到容器。

缺點

  • 安全性降低:容器與宿主機共享網絡命名空間,容器可以直接訪問主機上的網絡資源,增加安全風險。
  • 端口沖突:如果多個容器使用相同的端口號,可能會導致端口沖突。
  • 隔離性差:容器不再擁有獨立的網絡棧,網絡環境隔離性差。

3. 容器模式(Container)

優點

  • 高效通信:兩個容器共享同一個網絡命名空間,容器間通信非常高效,無需經過宿主機的網絡棧。
  • 簡化配置:對于需要緊密協作的容器(如微服務架構中的容器),容器模式可以簡化網絡配置。

缺點

  • 隔離性差:與橋接模式一樣,宿主機意外的其他主機無法訪問到容器。
  • 安全性問題:由于容器間共享網絡命名空間,一個容器的網絡安全問題可能影響到其他容器。

4. 自定義網絡模式

優點

  • 高度可配置:支持各種網絡驅動(如bridge、overlay、macvlan等),可以根據需要創建復雜的網絡拓撲。
  • 提供隔離性和安全性:通過子網、網關、DNS等配置,實現容器間的隔離和通信控制。
  • 支持服務發現:在自定義網絡中,容器可以通過服務名進行通信,而無需關注底層網絡配置。

缺點

  • 配置復雜度較高:需要適當的網絡知識來配置自定義網絡。
  • 可能涉及額外的網絡性能開銷:特別是在使用跨主機網絡通信時。

5. 無網絡模式(None)

優點

  • 安全性增強:容器與外部網絡完全隔離,提供更高的安全性。
  • 資源節省:無需為容器分配網絡接口和IP地址,節省網絡資源。

缺點

  • 無法進行網絡通信:容器無法與外部網絡或其他容器進行通信,僅適用于不需要網絡連接的場景。

54.先想好命令怎么敲--->再轉為yaml格式

55.如何使用docker-compose

docker-compose命令語法

教程文檔:

https://yeasy.gitbook.io/docker_practice/compose/compose_file

粘貼代碼使用粘貼模式 set paste

56.docker-compose部署zabbix

學習軟件 sublime Text、Notepad++

把yaml格式都放到sublime Text中加入yaml格式寫看,再使用vim 的粘貼模式粘貼

docker-compose容器編排后也要用docker-compose命令管理,盡量別使用docker命令管理

57.使用docker-compose部署wordpress

docker-compose -f wordpress.yml ps

docker inspect wordpress-compose_db_1?

# 容器內,暴露的數據卷
? ? ? ? ? ? "Volumes": {
? ? ? ? ? ? ? ? "/var/lib/mysql": {}
? ? ? ? ? ? },

# 掛在再外部的信息
?},
? ? ? ? "Mounts": [
? ? ? ? ? ? {
? ? ? ? ? ? ? ? "Type": "volume", ?# 卷的類型
? ? ? ? ? ? ? ? "Name": "wordpress-compose_db_data",
? ? ? ? ? ? ? ? "Source": "/var/lib/docker/volumes/wordpress-compose_db_data/_data",
? ? ? ? ? ? ? ? "Destination": "/var/lib/mysql",
? ? ? ? ? ? ? ? "Driver": "local",
? ? ? ? ? ? ? ? "Mode": "rw",
? ? ? ? ? ? ? ? "RW": true,
? ? ? ? ? ? ? ? "Propagation": ""
? ? ? ? ? ? }
? ? ? ? ],

# volume 類型解釋
# volume ? 容器內的數據,映射到宿主機的 /var/lib/docker/volumes/卷的名字
# bind類型 ? docker run -v 宿主機目錄:容器目錄

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

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

相關文章

cal命令

1、命令詳解&#xff1a; cal&#xff08;全稱&#xff1a;Calendar&#xff09;該命令用來顯示當前日歷或者指定日期的公歷。 2、官方參數&#xff1a; -1, --one 僅顯示當前月份&#xff08;默認&#xff09;-3, --three 顯示上個月、當前月和下個月-s, --sunday…

谷粒商城P85發布商品時規格參數不顯示問題

P85講&#xff0c;發布商品&#xff0c;點擊下一步之后&#xff0c;發現規格參數不顯示 打開控制臺發現報錯forEach...錯誤 查了問題原因&#xff0c;發現返回的分組中個別組的關聯屬性(attrs)可能為null 所以這個時候&#xff0c;需要確保后端返回的attrs不能為null 方式1…

數據結構之順序存儲線性表實現詳解與示例(C,C#,C++)

文章目錄 一、順序存儲線性表的基本概念二、順序存儲線性表的實現1、數據結構定義2、初始化3、添加元素4、訪問元素5、修改元素6、刪除元素7、銷毀 三、示例C語言示例C#語言示例C語言示例 順序存儲線性表是一種基本的數據結構&#xff0c;它將線性表的元素按照一定的順序存放在…

Mysql中存儲過程、存儲函數、自定義函數、變量、流程控制語句、光標/游標、定義條件和處理程序的使用示例

場景 存儲過程 存儲過程是一組為了完成特定功能的SQL語句集合。使用存儲過程的目的是將常用或復雜的工作預先用SQL語句寫好并用一個指定名稱存儲起來&#xff0c; 這個過程經編譯和優化后存儲在數據庫服務器中&#xff0c;因此稱為存儲過程。 當以后需要數據庫提供與己定義…

分享WPF的UI開源庫

文章目錄 前言一、HandyControl二、AduSkin三、Adonis UI四、Panuon.WPF.UI五、LayUI-WPF六、MahApps.Metro七、MaterialDesignInXamlToolkit八、FluentWPF九、DMSkin總結 前言 分享WPF的UI開源庫。 一、HandyControl HandyControl是一套WPF控件庫&#xff0c;它幾乎重寫了所…

uni-app 掃描二維碼獲取信息功能

首先是掃描二維碼的功能&#xff0c;可以參考這篇博文 uni-app-H5頁面調用設備攝像頭掃描二維碼_uni-app app端調用攝像頭顯示至指定元素上顯示-CSDN博客 然后現在是可以掃描二維碼的狀態&#xff0c;掃描之后&#xff0c;可以看到首先是出發上一個頁面的事件&#xff0c;然后…

每天一個數據分析題(四百二十五)- 單因素方差分析

關于下表&#xff0c;錯誤說法是&#xff08; &#xff09; A. 這是單因素方差分析的輸出結果 B. 表中 F< F crit, 與 P-value 大于顯著性水平是等價的 C. 表內組間均方差沒有顯著大于組內均方差 D. 由于組內SS數值顯著大于組間SS&#xff0c;因此可以推斷不同分類對于…

使用Python繪制面積圖

使用Python繪制面積圖 面積圖效果代碼 面積圖 面積圖展示數據隨時間的累積變化&#xff0c;適合表現趨勢和總量。通過填充圖形下方的區域&#xff0c;可以直觀地顯示各時間點的數值及其變化。 效果 [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-…

機器學習——決策樹(筆記)

目錄 一、認識決策樹 1. 介紹 2. 決策樹生成過程 二、sklearn中的決策樹 1. tree.DecisionTreeClassifier&#xff08;分類樹&#xff09; &#xff08;1&#xff09;模型基本參數 &#xff08;2&#xff09;模型屬性 &#xff08;3&#xff09;接口 2. tree.Decision…

最新開源免費數字人工具

使用步驟更是簡單到不行&#xff1a; 1. 輸入圖片&#xff1a;選擇你想要生成動態視頻的肖像圖片。 2. 輸入音頻&#xff1a;提供與圖片匹配的音頻文件&#xff0c;EchoMimic會根據音頻內容驅動肖像的動態效果。 3. 設置參數&#xff1a;一般保持默認設置即可&#xff0c;當然&…

排序題目:最小時間差

文章目錄 題目標題和出處難度題目描述要求示例數據范圍 解法思路和算法代碼復雜度分析 題目 標題和出處 標題&#xff1a;最小時間差 出處&#xff1a;539. 最小時間差 難度 3 級 題目描述 要求 給定一個 24 \texttt{24} 24 小時制的時間列表&#xff0c;時間以 &quo…

暗黑魅力:Xcode全面擁抱應用暗黑模式開發指南

暗黑魅力&#xff1a;Xcode全面擁抱應用暗黑模式開發指南 隨著蘋果在iOS 13和iPadOS 13中引入暗黑模式&#xff0c;用戶可以根據自己的喜好或環境光線選擇不同的界面主題。作為開發者&#xff0c;支持暗黑模式不僅能提升用戶體驗&#xff0c;還能彰顯應用的專業性。Xcode提供了…

《夢醒蝶飛:釋放Excel函數與公式的力量》11.4 ISERROR函數

第11章&#xff1a;信息函數 第四節 11.4 ISERROR函數 11.4.1 簡介 ISERROR函數是Excel中的一個信息函數&#xff0c;用于檢查指定單元格或表達式是否產生錯誤。如果單元格或表達式產生任何類型的錯誤&#xff08;如N/A、VALUE!、REF!等&#xff09;&#xff0c;則返回TRUE&…

全開源TikTok跨境商城源碼/TikTok內嵌商城+搭建教程/前端uniapp+后端

多語言跨境電商外貿商城 TikTok內嵌商城&#xff0c;商家入駐一鍵鋪貨一鍵提貨 全開源完美運營 海外版抖音TikTok商城系統源碼&#xff0c;TikToK內嵌商城&#xff0c;跨境商城系統源碼 接在tiktok里面的商城。tiktok內嵌&#xff0c;也可單獨分開出來當獨立站運營 二十一種…

FPGA原型驗證(八):如何選擇現成的原型驗證平臺?

第6章 如何選擇現成的原型驗證平臺? 在第5章中,我們探討了為基于FPGA的原型項目創建FPGA硬件平臺時應考慮的詳細因素。 現在,我們將考慮所謂的“自制還是購買”爭論的另一方面。什么時候使用現成的FPGA板或甚至是更復雜的基于FPGA的系統,而不是設計定制板更有意義? 什么…

leetcode165.解密數字

題目表述&#xff1a; 這道題目和斐波那契數列以及跳臺階問題十分相似。 斐波那契數列&#xff1a;0、1、1、2、3、5, 8、13、21、34 …… leetcode跳臺階問題&#xff1a;1、1、2、3、5, 8、13、21、34....... 這類題目的特點都是第N項的結果等于前兩項的和。 但是解密數…

java 在pdf中根據關鍵字位置插入圖片(公章、簽名等)

java 在pdf中根據關鍵字位置插入圖片&#xff08;公章、簽名等&#xff09; 1.使用依賴 <dependency><groupId>com.itextpdf</groupId><artifactId>itext7-core</artifactId><version>7.1.12</version><type>pom</type>…

【深度學習】圖形模型基礎(7):機器學習優化中的方差減少方法(1)

摘要 隨機優化是機器學習中至關重要的組成部分&#xff0c;其核心是隨機梯度下降算法&#xff08;SGD&#xff09;&#xff0c;這種方法自60多年前首次提出以來一直被廣泛使用。近八年來&#xff0c;我們見證了一個激動人心的新進展&#xff1a;隨機優化方法的方差降低技術。這…

車載測試資料學習和CANoe工具實操車載項目(每日直播)

每日直播時間&#xff1a;&#xff08;直播方式&#xff1a;騰訊會議&#xff09; 周一到周五&#xff1a;20&#xff1a;00-23&#xff1a;00 周六與周日&#xff1a;9&#xff1a;00-17&#xff1a;00 向進騰訊會議學習的&#xff0c;可以關注我并后臺留言 直播內容&#xff…

Simscape物理建模步驟

為了介紹構建和仿真物理模型的步驟&#xff0c;這里以simulink自帶示例模型Mass-Spring-Damper with Controller為例&#xff0c;下圖為建立好的模型。 詳細物理建模和仿真分析步驟如下&#xff1a; 步驟 1&#xff1a;使用 ssc_new 創建新模型 使用 ssc_new 是開始構建 Sims…