《Docker 零基礎入門到實戰:容器化部署如此簡單,運維效率直接拉滿》

相信你對封面圖上的「Docker 鯨魚」圖標并不陌生 —— 它正是解決「開發環境能跑,生產環境崩了」的容器化神器!Docker 通過打包應用與依賴到輕量容器,實現了「一次構建,到處運行」,徹底消除環境不一致的痛點。本文從 Docker 核心概念(鏡像 / 容器 / 倉庫)講起,手把手教你安裝配置、構建自定義鏡像、Docker Compose 編排多容器,最后附上 SpringBoot 項目容器化部署的完整實戰,讓運維小白也能快速上手容器技術!

為什么使用docker

之前都是用Linux+centos(Iso鏡像)得到一個可以使用的linux系統

然后配置數據庫 ,nginx 等

這種方式部署慢,成本高,造成了資源的浪費,并且難于遷移和擴展

并且之前的虛擬化技術(vmware,kvm)的目標都是一臺完整的計算機

而我們的需求僅僅是想使用多個應用程序,讓他們相互獨立,而不是得到一臺完整的系統

docker使用容器技術對進程進行封裝隔離

Docker 簡介

Docker 是一種容器化技術,允許開發者將應用程序及其依賴打包到一個輕量級、可移植的容器中。容器與虛擬機不同,它直接運行在宿主機的操作系統上,共享系統內核,因此更加高效和快速。

安裝 Docker

  1. Windows/macOS

    • 下載 Docker Desktop(官網鏈接),安裝后啟動。
    • 確保啟用 WSL 2(Windows)或 HyperKit(macOS)。
  2. Linux(Ubuntu)

    sudo apt update
    sudo apt install docker.io
    sudo systemctl start docker
    sudo systemctl enable docker
    
    • 驗證安裝:docker --version

基本概念

  • 鏡像(Image):只讀模板,用于創建容器。
  • 容器(Container):鏡像的運行實例,包含應用程序和運行環境。
  • Dockerfile:文本文件,定義如何構建鏡像。

舉例:程序員在寫好代碼之后,要交給測試人員代碼,此時測試人員沒有環境和依賴,所以程序員會開發dockerfile腳本,完成的效果就是將代碼,依賴和環境全部打包為一個鏡像文件(image),測試人員直接運行這個鏡像就可以運行

容器

1. 容器內沒有自己的內核,也沒有對硬件進行虛擬,Docker引擎容器僅包含應用程序及其依賴項,他在主機操作系統的用戶控件中作為一個獨立的進程運行,與其他容器共享內核,因此容器中的程序直接運行在宿主機上,能夠使用宿主機最大的硬件資源

2.?一個宿主機可以啟動100+的容器數量,并且啟動一個容器的時間只需要1S

拉取第一個容器

  1. 拉取官方測試鏡像:
    docker pull hello-world
    
  2. 運行容器:
    docker run hello-world
    
    • 輸出 Hello from Docker! 表示成功。

構建自定義鏡像

  1. 創建 Dockerfile 文件:
    FROM alpine:latest
    CMD echo "Hello, Docker!"
    
  2. 構建鏡像:
    docker build -t my-image .
    
  3. 運行容器:
    docker run my-image
    

管理容器和鏡像

  • 查看運行中的容器:docker ps
  • 查看所有容器:docker ps -a
  • 停止容器:docker stop <容器ID>
  • 刪除容器:docker rm <容器ID>
  • 列出鏡像:docker images
  • 刪除鏡像:docker rmi <鏡像名>

數據持久化(卷掛載)

  • 將主機目錄掛載到容器:
    docker run -v /host/path:/container/path my-image
    

網絡配置

  • 映射容器端口到主機:
    docker run -p 8080:80 nginx
    
    • 訪問 http://localhost:8080 可看到 Nginx 默認頁面。

常用命令速查

命令功能示例
docker run啟動一個新的容器并運行命令docker run -d ubuntu
docker ps列出當前正在運行的容器docker ps
docker ps -a列出所有容器(包括已停止的容器)docker ps -a
docker search尋找鏡像docker search 鏡像名
docker build使用 Dockerfile 構建鏡像docker build -t my-image .
docker images列出本地存儲的所有鏡像docker images
docker pull從 Docker 倉庫拉取鏡像docker pull ubuntu
docker push將鏡像推送到 Docker 倉庫docker push my-image
docker stop停止一個或多個容器docker stop container_name
docker start啟動已停止的容器docker start container_name
docker restart重啟一個容器docker restart container_name
docker rmi刪除一個或多個鏡像docker rmi my-image
docker logs查看容器的日志docker logs container_name
docker version顯示 Docker 客戶端和守護進程的版本信息docker version
docker? pause暫停容器中的所有進程docker pause my_container
docker create?創建一個新的容易,但不會啟動它docker create ubuntu
docker run -it啟動一個容器并進入終端docker run -it ubuntu bash
  • -i: 交互式操作。
  • -t: 終端。

要退出終端,直接輸入?exit:

ubuntu 鏡像。

/bin/bash:放在鏡像名后的是命令,這里我們希望有個交互式 Shell,因此用的是 /bin/bash。
docker exec -it進入在后臺運行的容器docker exec -it ubuntu bash

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

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

相關文章

Spring Security 深度學習(六): RESTful API 安全與 JWT

目錄 1. 引言&#xff1a;無狀態認證的崛起2. JWT (JSON Web Token) 核心概念2.1 什么是JWT&#xff1f;2.2 JWT的組成&#xff1a;Header, Payload, Signature2.3 JWT的工作原理2.4 JWT的優缺點與適用場景 3. Spring Security中的JWT集成策略3.1 禁用Session管理與CSRF防護3.2…

無名信號量

include <myhead.h> oid *task( void *file_size)int file_size1*(int*)file_size;//打開源文件int fdopen("./hello",O_RDONLY);if(fd-1){perror("open error\n");return NULL;}//打開目標文件int fd1open("./world",O_WRONLY);if(fd1-1)…

免費CRM系統與Excel客戶管理的區別

很多中小企業在客戶管理初期&#xff0c;會選擇使用Excel表格進行客戶數據的整理與維護。但隨著業務規模擴大&#xff0c;客戶信息日益復雜&#xff0c;Excel逐漸暴露出諸多局限性。此時&#xff0c;免費CRM系統應運而生&#xff0c;成為企業客戶管理升級的重要選擇。本文將深入…

linux Nginx服務配置介紹,和配置流程

1、Nginx 配置介紹認識Nginx服務的主配置文件 nginx.confnginx的配置文件一般在 /usr/local/nginx/conf/下&#xff0c;然后直接vim nginx.com 即可編輯1.1 全局配置介紹全局配置位于主配置文件最頂部&#xff0c;作用于整個Nginx服務進程&#xff0c;影響服務的資源分配、運行…

文字識別接口-文字識別技術-ocr api

文字識別接口&#xff0c;顧名思義&#xff0c;就是一種將圖像文字或手寫文字轉換為可編輯文本的技術。文字識別接口&#xff0c;基于深度學習算法與自主ocr核心實現多種場景字符的高精度識別與結構化信息提取&#xff0c;現已被廣泛應用于銀行、醫療、財會、教育等多個領域。隨…

DeepSeek R1大模型微調實戰-llama-factory的模型下載與訓練

文章目錄概要1.下載模型2.llama factory 訓練模型2.1 模型微調2.2 模型評估2.3 模型對話2.4 導出模型3.硬件選擇概要 LLaMA Factory 是一個簡單易用且高效的大型語言模型訓練與微調平臺。通過它&#xff0c;用戶可以在無需編寫任何代碼的前提下&#xff0c;在本地完成上百種預…

C++ map和set

C參考文獻&#xff1a;cplusplus.com - The C Resources Network 目錄 一、序列式容器和關聯式容器 二、set系列 &#xff08;1&#xff09;set類的介紹 &#xff08;2&#xff09;set的構造和迭代器 &#xff08;3&#xff09;set的接口 1.insert?編輯 2.find和erase 3…

頭一次見問這么多kafka的問題

分享一篇粉絲朋友整理的面經&#xff0c;第一次遇見問那么多kafka的問題&#xff0c;看看他是怎么回答的。 先來看看 職位描述&#xff1a; 崗位職責&#xff1a; 負責基于 Go 的后端服務的設計、開發和維護&#xff1b;參與系統架構設計&#xff0c;確保系統的高可用性、高性能…

自底向上了解CPU的運算

文章目錄 引言 CPU如何實現邏輯運算 NMOS和PMOS 基于MOS管組合下的邏輯門運算 邏輯運算下運算的實現 ALU的誕生 CPU的誕生 關于二進制運算的研究 十進制轉二進制基礎換算 為什么負數要使用補碼進行表示 為什么反碼就能解決正負數相加問題,我們還需要用補碼來表示負數呢? 小數…

apache poi與Office Open XML關系

以下內容來自AI https://ecma-international.org/publications-and-standards/standards/ecma-376/ 官方規范 https://poi.apache.org/components/oxml4j/index.html java中針對Office Open XML的實現 Apache poi中各個組件 https://poi.apache.org/components/index.html …

S32K328上芯片內部RTC的使用和喚醒配置

1&#xff1a;RTC介紹 1.1 RTC基礎功能介紹 參考《S32K3xx Reference Manual》&#xff0c;S32K328芯片內部自帶RTC功能&#xff0c;并且支持從低功耗狀態下喚醒設備&#xff1b;1.2 RTC電源介紹 由以下三張圖可知 1&#xff1a;RTC由V11供電&#xff0c;V11依賴外部V15供電&am…

【Python】數據可視化之分類圖

目錄 條形圖 箱形圖 散點圖 分簇散點圖 小提琴 分簇小提琴 條形圖 條形圖是一種直觀的圖表形式&#xff0c;它通過不同長度的矩形條&#xff08;即“條形”&#xff09;來展示數值變量的中心趨勢估計值&#xff0c;其中每個矩形的高度直接對應于該組數據的某個中心量度&…

RabbitMQ模型詳解與常見問題

項目demo地址&#xff1a;https://github.com/tian-qingzhao/rabbitmq-demo 一、RabbitMQ組件概念 1.1 Server&#xff1a;接收客戶端的連接&#xff0c;實現AMQP實體服務。 1.2 Connection&#xff1a;連接 應用程序與Server的網絡連接&#xff0c;TCP連接。 1.3 Channel&…

網絡:相比于HTTP,HTTPS協議到底安全在哪?

網絡&#xff1a;相比于HTTP&#xff0c;HTTPS協議到底安全在哪&#xff1f; 我們知道HTTPS也是一種應用層協議&#xff0c;它在HTTP的基礎上有一層加密&#xff0c;因為HTTP的數據傳輸都是以明文方式傳輸的&#xff0c;所以加密主要是為了防止數據在傳輸的時候被篡改 今天我…

AI 基礎設施新范式,百度百舸 5.0 技術深度解析

本文整理自 2025 年 8 月 29 日百度云智大會 —— AI 算力平臺專題論壇&#xff0c;百度智能云 AI 計算首席科學家王雁鵬的同名主題演講。大家下午好&#xff01;昨天在主論壇&#xff0c;我們正式發布了百度百舸 AI 計算平臺 5.0&#xff0c;并展示了多項亮眼的性能數據。今天…

IO進程線程;多線程;線程互斥同步;互斥鎖;無名信號量;條件變量;0905

思維導圖多線程打印ABC運用無名面量 實現進程同步#include<myhead.h> //定義 無名信號量 sem_t sem1; sem_t sem2; sem_t sem3; //線程1 void* task1(void *arg) {while(1){sem_wait(&sem1);printf("A");fflush(stdout);sleep(1);sem_post(&sem2);} } …

固高 GTS-800 運動控制卡完全使用指南:從硬件部署到高階應用

固高 GTS-800 系列運動控制卡作為中端工業控制領域的標桿產品,以其 8-16 軸同步控制能力、豐富的插補功能和穩定的性能,廣泛應用于激光加工、PCB 制造、精密裝配等自動化設備中。本文將系統講解 GTS-800 的硬件架構、開發環境搭建、核心功能實現及工程實踐技巧,幫助工程師快…

STM32F103_Bootloader程序開發15 - 從Keil到vscode + EIDE + GCC的遷移實踐

導言 STM32 - Embedded IDE - GCC - 如何在工程中生成.bin格式固件 STM32 - Embedded IDE - GCC - 使用 GCC 鏈接腳本限制 Flash 區域 STM32 - Embedded IDE - GCC - 如何在工程中定義一段 NoInit RAM 內存 STM32 - Embedded IDE - GCC - 如何將編譯得到的.bin固件添加CRC32校驗…

HTTP協議——理解相關概念、模擬實現瀏覽器訪問自定義服務器

文章目錄HTTP協議理解相關概念HTTP相關背景知識認識URLHTTP協議在網絡通信的宏觀認識urlencode & urldecodeHTTP請求和應答的格式模擬實現瀏覽器訪問自定義服務器關于http requesthttp request的請求行——URI使用瀏覽器完成靜態資源的訪問常用的報頭屬性http response狀態…

【服務器】英偉達M40顯卡風冷方案心得

在之前的博文中&#xff0c;博主說到最近準備自己組裝一臺服務器&#xff0c;主要用于有限元仿真&#xff0c;其次兼顧一部分AI機器學習的工作&#xff0c;于是博主就入手了一張英偉達Tesla M40的12G顯卡GPU。本來博主也糾結過是買M40還是M60&#xff0c;后來在網上看到說M60看…