從0到1入門Docker

一、快速入門

Docker run命令中的常見參數

  • -d:讓容器后臺運行
  • --name:給容器命名(唯一)
  • -e:環境變量
  • -p:宿主機端口映射到容器內端口
  • 鏡像名稱結構:Repository :TAG(鏡像名:版本號)

二、Docker基礎

1.常見命令

Docker最常見的命令就是操作鏡像,容器的命令

2.數據卷

(1)介紹

數據卷(volume)是一個虛擬目錄,是容器內目錄宿主機目錄之間映射的橋梁,方便我們操作容器內文件,或者方便遷移容器產生的數據

(2)數據卷常見命令

(3)如何掛載數據卷

創建容器時,使用

docker run -v 數據卷名:容器內目錄

完成掛載,在容器創建時,如果發現掛載的數據卷不存在時,會自動創建

(4)本地目錄掛載

docker run -v 本地目錄:容器內目錄

可以完成本地目錄掛載,本地目錄必須以“?/?”或“?./?”開頭,如果直接以名稱開頭,會被識別為數據卷而非本地目錄

3.自定義鏡像

鏡像就是包含了應用程序,程序運行的系統函數庫,運行配置等文件的文件包。構建鏡像的過程其實就是把上述文件分層打包的過程。

(1)鏡像結構

(Layer)

添加安裝包,依賴,配置等,每次操作都形成新的一層

基礎鏡像(BaseImage)

應用依賴的系統函數庫,環境,配置,文件等

入口(Entrypoint)

鏡像運行入口,一般是程序啟動的腳本和參數

(2)Dockerfile

Dockerfile就是一個文本文件,其中包含一個個的指令(Instruction),用指令來描述要執行什么操作來構建鏡像。將來Docker可以根據Dockerfile幫我們構建鏡像,常見指令如下:

示例:

當編寫好了Dockerfile,可以利用下面命令來構建鏡像:

docker build -t 鏡像名 Dockerfile目錄? .

其中:

  • -t:是給鏡像起名,格式依然是repository:tag,不指定tag時,默認為latest
  • .?:是指定Dockerfile所在目錄,如果就在當前目錄,則指定為“.”

4.容器網絡互連

默認情況下,所有容器都是以bridge方式連接到Docker的一個虛擬網橋上:

加入自定義網絡的容器才可以通過容器名互相訪問,Docker的網絡操作命令如下:

三、項目部署

1.Docker Compose

Docker Compose通過一個單獨的docker-compose.yml模板文件(YAML文件)來定義一組相關聯的應用容器,幫助我們實現多個相互關聯的Docker容器的快速部署

示例:

version: "3.8"services:mysql:image: mysqlcontainer_name: mysqlports:- "3306:3306"environment:TZ: Asia/ShanghaiMYSQL_ROOT_PASSWORD: 123volumes:- "./mysql/conf:/etc/mysql/conf.d"- "./mysql/data:/var/lib/mysql"- "./mysql/init:/docker-entrypoint-initdb.d"networks:- hm-nethmall:build: context: .dockerfile: Dockerfilecontainer_name: hmallports:- "8080:8080"networks:- hm-netdepends_on:- mysqlnginx:image: nginxcontainer_name: nginxports:- "18080:18080"- "18081:18081"volumes:- "./nginx/nginx.conf:/etc/nginx/nginx.conf"- "./nginx/html:/usr/share/nginx/html"depends_on:- hmallnetworks:- hm-net
networks:hm-net:name: hmall

2.命令格式

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

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

相關文章

接口自動化入門 —— Jmeter實現在接口工具中關聯接口處理方案

1. JMeter 接口關聯處理的核心概念 接口關聯是指在多個接口請求之間共享數據,例如將一個接口的返回值作為另一個接口的輸入參數。常見的場景包括: 使用登錄接口返回的 Token 作為后續接口的認證信息。 將一個接口返回的 ID 作為另一個接口的請求參數。…

Flink-學習路線

最近想學習一下Flink,公司的實時需求還是不少的,因此結合ai整理了一份學習路線,記錄一下。 當然,公司也有Scala版本Flink框架,也學習了一下。這里只說Java版本 1. Java基礎 目標: 掌握Java編程語言的基礎知識。 內容…

ranger集成starrock報錯

org.apache.ranger.plugin.client.HadoopException: initConnection: Unable to connect to StarRocks instance, please provide valid value of field : {jdbc.driverClassName}.. com.mysql.cj.jdbc.Driver. 可能的原因 JDBC 驅動缺失:運行環境中沒有安裝 MySQL …

python Jsonpath表達式語法取值

python Jsonpath 語法規則: 演示數據:{"status":"0","msg":"成功","data": [ {"foo1": "bar1"},{"foo1": "bar2"}]} 根節點:$ $.status $.…

Blender-MCP服務源碼2-依賴分析

Blender-MCP服務源碼2-依賴分析 有個大佬做了一個Blender-MCP源碼,第一次提交代碼是【2025年3月7號】今天是【2025年月15日】也就是剛過去一周的時間,所以想從0開始學習這個代碼,了解一下大佬們的開發思路 1-核心知識點 from mcp.server.fas…

反射(第三篇)、代理模式、靜態代理和動態代理、InvocationHandler實際應用

DAY11.3 Java核心基礎 反射(第三篇) 前兩篇我們學習了反射的概念和基本操作 實際開發中,反射應用于那里? 動態代理 java中的動態代理就是一個重要的作用 代理模式 代理模式是java中常用的設計模式 指的是在處理一個業務邏輯…

Unity 封裝一個依賴于MonoBehaviour的計時器(上) 基本功能

靈感來自下面這本書的協程部分,因此我就自己嘗試寫了一個 我的新書Unity3D游戲開發(第3版) | 雨松MOMO程序研究院 如果你不知道什么是協程:unity保姆級教程之協同程序_unity協同-CSDN博客 一句話概括:協程就是單線程的異步操作,其作用于Unity的主線程 1…

數學建模 第一節

目錄?????? 前言 一 優化模型的類型 二 線性規劃1 線性規劃2 三 0-1規劃 總結 前言 數學建模主要是將問題轉化為模型,然后再以編程的形式輸出出來 算法都知道,數學建模也需要用到算法,但是不是主要以編程形式展示,而是…

Vulkan視頻解碼decode顯示display之同步

在ReleaseDisplayedPicture函數中消耗圖片資源并且顯示display完成,設置兩個標志m_hasConsummerSignalFence true 和m_hasConsummerSignalSemaphore true virtual int32_t ReleaseDisplayedPicture(DecodedFrameRelease** pDecodedFramesRelease, uint32_t nu…

網絡空間安全(32)Kali MSF基本介紹

前言 Metasploit Framework(簡稱MSF)是一款功能強大的開源安全漏洞檢測工具,被廣泛應用于滲透測試中。它內置了數千個已知的軟件漏洞,并持續更新以應對新興的安全威脅。MSF不僅限于漏洞利用,還包括信息收集、漏洞探測和…

設計模式學習記錄

設計模式23種 創建型抽象工廠模式工廠模式生成器模式原型模式單例模式 結構型適配器模式橋接模式組合模式裝飾模式外觀模式享元模式代理模式 行為型責任鏈模式命令模式解釋器模式迭代器模式中介者模式備忘錄模式觀察者模式狀態模式策略模式模版方法模式訪問者模式 創建型 與對…

2.5 python接口編程

在現代軟件開發的復雜生態系統中,不同系統、模塊之間的交互協作至關重要。接口編程作為一種關鍵機制,定義了組件之間的通信規范與交互方式。Python 憑借其卓越的靈活性、豐富的庫資源以及簡潔易讀的語法,在接口編程領域占據了重要地位&#x…

mesh開發解析

開源的Mesh網絡協議棧及相關項目: 1.B.A.T.M.A.N.(Better Approach to Mobile Ad-hoc Networking)? 簡介:B.A.T.M.A.N.是一種用于多跳自組織網絡的路由協議,適用于無線Mesh網絡。它通過優化數據傳輸路徑,確保網絡的高可靠性和動…

PyTorch PINN實戰:用深度學習求解微分方程

在人工智能與計算數學的交匯點,物理信息神經網絡(Physics-Informed Neural Networks,PINN)正引領著一場求解微分方程的革命。傳統上,微分方程是描述自然現象和工程問題中各種關系的重要工具,但其求解往往依…

【WiFi 7核心技術及未來挑戰】

作為剛剛開始從事這一領域的人,淺淺學習了一下WiFi 7(IEEE 802.11be)。Wi-Fi 7發展迅速,提供前所未有的速度、更低的延遲和更高的可靠性。但從頻譜政策到能效挑戰,再到成本,仍有許多問題亟待解決。 Wi-Fi 7…

Oracle Linux Server 7.9安裝fail2ban

yum search oracle-epel-release yum install oracle-epel-release-el7 search fail2ban yum install fail2ban nano /etc/fail2ban/jail.d/00-firewalld.conf # defalut這里是設定全局設置,如果下面的監控沒有設置就以全局設置的值設置。 [DEFAULT] # 用于指定哪…

目標在哪里?——尋找人生的意義與方向

在職場中,許多人都會經歷這樣的困惑:工作看似順利,卻逐漸失去了成就感和成長感。一位在500強企業工作的學員就遇到了這樣的問題。她曾考慮過轉型做培訓,但苦于找不到明確的切入點,對未來的目標感到迷茫。她不禁問自己&…

C++類與對象——拷貝構造與運算符重載

拷貝構造函數和賦值運算符重載就是C類默認六個函數之二。 拷貝構造函數: 如果?個構造函數的第?個參數是自身類類型的引用,且任何額外的參數都有默認值,則此構造函數 也叫做拷貝構造函數,也就是說拷貝構造是?個特殊的構造函數…

破碎的誓言

破碎的誓言 在秋風的呢喃中,落葉輕嘆, 昔日的誓言,如煙消散。 你的眼眸,曾是我星辰的指引, 如今,卻成了最深的迷惘。 欺騙的利刃,刺穿了信任的堡壘, 我的心,如裂開…

AD畫板學習

AD畫板 01 課程簡介及學習目標 (1)能熟練的新建項目文件、原理圖文件、PCB文件且修改文件名,并知道文件保存的位置; (2)會設置原理圖編輯器的工作環境,會自底向上繪制層次原理圖; …