容器技術技術入門與 Docker 環境部署

目錄

一:Docker概述

1、 Docker的優勢:

(1)環境一致性

(2)隔離性

(3)資源高效

(4)便捷性和可擴展性

2、Docker容器與傳統虛擬機的區別

3、Docker的應用場景

4、Docker核心

(1)鏡像(Image)

(2)容器(Container)

(3)倉庫(Repository)

二:Docker安裝

1:本安裝方式使用阿里的軟件倉庫

(1)關閉系統防火墻

(2)下載Docker的repo文件

(3)替換倉庫地址

(4)更新索引文件并安裝Docker

(5)添加國內鏡像站

(6)開啟Docker服務

(7)優化內核參數

三:Docker鏡像操作

1、Docker 鏡像操作列表

2、Docker鏡像操作案例

(1)獲取鏡像

(2)查看鏡像

(3)查看鏡像的詳細信息

(4)修改鏡像標簽

(5)刪除鏡像

1.用鏡像名刪除

2.用ID 刪除

(6)存出鏡像和載入鏡像

1.導出

2.刪除

3.導入

四、Docker容器操作

1、Docker 容器操作列表

2、Docker 容器操作案例?

(1)容器的創建與啟動

1.創建容器

2.查看所有的容器

3.容器的運行

4.利用容器執行命令(命令執行完畢后容器會退出)

5.在啟動容器時持續在后臺運行

(2)容器的終止

(3)進入容器

(4)容器導出

(5)容器導入生成鏡像

(6)容器刪除


一:Docker概述

Docker是一個開源的應用容器引擎,它允許開發者將應用及其依賴打包成一個輕量級、可移植的容器,然后這個容器可以在任何支持Docker的機器上運行,無論是物理機、虛擬機、云平臺還是數據中心。

1、 Docker的優勢:

(1)環境一致性

Docker容器在任何支持Docker的環境中運行時表現一致,解決了“在我的機器上運行正常,但在其他機器上就不行”的問題。

(2)隔離性

容器之間相互隔離,一個容器的故障或異常不會影響到其他容器的運行,提高了應用的穩定性和安全性。

(3)資源高效

與傳統虛擬機相比,Docker容器不需要額外的操作系統,因此資源消耗更少,啟動更快。

(4)便捷性和可擴展性

容器的啟動速度非常快,通常只需要幾秒鐘,可快速創建和銷毀容器,方便進行應用的快速部署和彈性擴展。

2、Docker容器與傳統虛擬機的區別

特性

Docker容器

虛擬機

啟動速度

秒級

分鐘級

計算能力損耗

幾乎無

損耗50%左右

性能

接近原生

弱于

系統支持量

上千個

幾十個

隔離性

資源限制

完全隔離

3、Docker的應用場景

(1)開發環境管理

(2)持續集成和持續部署(CI/CD)

(3)微服務架構

(4)云計算

4、Docker核心

(1)鏡像(Image)

類似于虛擬機的快照,但是所占資源遠遠小于快照,可以理解為一個面向Docker容器引擎的只讀模板。可以用戶自己創建和更新現有的鏡像,也可以從網上下載已創建好的鏡像。

(2)容器(Container)

Docker的容器時從鏡像創建的運行實例,可以被啟動、停止、刪除。所創建的每一個容器都是相互隔離、互不可見、以保證安全性的平臺。

(3)倉庫(Repository)

Docker倉庫是用來集中保存鏡像的地方,創建自己的鏡像后,可以使用push命令將它上傳到公有倉庫(Public)或者私有倉庫(Private)。其他機器使用時可以從倉庫獲取。

二:Docker安裝

CentOS 系統安裝Docker有兩種放式:

(1)使用 CURL 獲得 Docker 的安裝腳本

(2)使用 YUM 倉庫安裝。

注意:目前Docker只能支持64位系統

1:本安裝方式使用阿里的軟件倉庫

(1)關閉系統防火墻

systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/=enforcing/=disabled/' /etc/selinux/config

(2)下載Docker的repo文件

?curl -o /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

(3)替換倉庫地址

sed -i 's/$releasever/8/g' /etc/yum.repos.d/docker-ce.repo
sed -i 's/$basearch/x86_64/g' /etc/yum.repos.d/docker-ce.repo

(4)更新索引文件并安裝Docker

dnf clean all
dnf makecache
dnf -y install docker-ce

(5)添加國內鏡像站

?vim /etc/docker/daemon.json
{
"exec-opts": ["netive.cgroupdriver=systemd"],"registry-mirrors": ["https://docker.m.daocloud.io","https://docker.imgdb.de","https://docker-0.unsee.tech","https://docker.hlmirror.com"]
}

(工信部網絡政策調整,docker.io、gcr.io等國際鏡像站不能訪問)

(6)開啟Docker服務

systemctl daemon-reload
systemctl restart docker
systemctl enable docker
docker version

(7)優化內核參數

vim /etc/sysctl.conf
net.ipv4.ip_forward=1	#12
net.bridge.bridge-nf-call-iptables=1
net.bridge.brifge-nf-call-ip6tables=1sysctl -p

三:Docker鏡像操作

1、Docker 鏡像操作列表

命令

語法

參數/選項

說明

示例

拉取鏡像

docker pull [OPTIONS] NAME[:TAG|@DIGEST]

-a:拉取所有標簽的鏡像

--disable-content-trust:禁用鏡像簽名驗證

從鏡像倉庫拉取鏡像到本地

docker pull nginx:1.24.0

列出鏡像

docker images [OPTIONS] [REPOSITORY[:TAG]]

-a:顯示所有鏡像(包括中間層)

-q:僅顯示鏡像ID

--digests:顯示摘要信息

列出本地所有鏡像的倉庫名、標簽、ID、創建時間及大小

docker images -a

查看鏡像詳情

docker inspect [OPTIONS] IMAGE

-f:自定義輸出格式

--size(僅容器)

查看鏡像的底層詳細信息(JSON格式)

docker inspect c15

修改鏡像標簽

docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

為鏡像添加新標簽(不創建新鏡像)

docker tag nginx:1.24.0 nginx:v1

刪除鏡像

docker rmi [OPTIONS] IMAGE [IMAGE...]

-f:強制刪除

--no-prune:保留父鏡像層

刪除本地鏡像

docker rmi nginx:v1

docker rmi c15

導出鏡像

docker save -o FILE IMAGE[:TAG]

將鏡像保存為tar文件

docker save -o nginx.tar nginx:1.24.0

導入鏡像

docker load < FILE

從tar文件加載鏡像

docker load < nginx.tar

2、Docker鏡像操作案例

運行 Docker 容器前需要本地存在對應的鏡像。如果不存在本地鏡像,Docker 就會嘗試從默認鏡像倉庫下載。鏡像倉庫是由 Docker 官方維護的一個公共倉庫,可以滿足用戶的絕大部分需求。用戶也可以通過配置來使用自定義的鏡像倉庫。

(1)獲取鏡像

docker pull nginx:1.24.0

(2)查看鏡像

docker images

(3)查看鏡像的詳細信息

docker inspect 6c0218

(4)修改鏡像標簽

docker tag nginx:1.24.0 nginx:v1
docker images

(5)刪除鏡像

刪除鏡像有兩種方式

1.用鏡像名刪除
docker rmi nginx:v1
2.用ID 刪除
docker rmi 6c0218

(6)存出鏡像和載入鏡像

1.導出
docker save -o nginx nginx:1.24.0
ls
2.刪除
docker rmi nginx:1.24.0
3.導入
docker load<nginx
docker images

四、Docker容器操作

1、Docker 容器操作列表

命令

語法

參數/選項

說明

示例

創建容器

docker create [OPTIONS] IMAGE [COMMAND] [ARG...]

-it:交互式終端

-p:端口映射

--name:容器命名

創建容器但不啟動

docker create -it --name my_centos centos:7

啟動容器

docker start [OPTIONS] CONTAINER

-a:附加到容器輸出

-i:保持輸入交互

啟動已創建的容器

docker start my_centos

創建并運行容器

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

-d:后臺運行

-it:交互式終端

-p:端口映射

-v:掛載數據卷

直接創建并啟動容器

docker run -d -p 8080:80 nginx

docker run -it centos:7 /bin/bash

列出容器

docker ps [OPTIONS]

-a:顯示所有容器

-q:僅顯示ID

-s:顯示容器大小

查看容器狀態和基本信息

docker ps -a

停止容器

docker stop [OPTIONS] CONTAINER

-t:設置等待時間(默認10秒)

優雅停止容器

docker stop -t 20 my_nginx

進入容器

docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

-it:交互式終端

-u:指定用戶

在運行中的容器內執行命令

docker exec -it my_centos /bin/bash

導出容器

docker export CONTAINER > FILE

將容器文件系統導出為tar文件

docker export my_centos > centos.tar

導入容器為鏡像

docker import FILE [REPOSITORY[:TAG]]

從tar文件生成鏡像

docker import centos.tar centos:test

刪除容器

docker rm [OPTIONS] CONTAINER

-f:強制刪除運行中的容器

-v:同時刪除數據卷

刪除已停止的容器

docker rm -f my_centos

2、Docker 容器操作案例?

容器是 Docker 的另一個核心概念。簡單說,容器是鏡像的一個運行實例,是獨立運行的一個或一組應用以及它們所必需的運行環境,包括文件系統、系統類庫、she11 環境等。鏡像是只讀模板,而容器會給這個只讀模板添加一個額外的可寫層。

(1)容器的創建與啟動

1.創建容器
docker create -it centos:7
2.查看所有的容器
docker ps -a 
3.容器的運行
docker start 5a
docker ps 
4.利用容器執行命令(命令執行完畢后容器會退出)
docker run -d centos:7 /usr/bin/bash -c "ls /root"
5.在啟動容器時持續在后臺運行
docker run -d centos:7 /usr/bin/bash -c "while true;do echo nihao;done"

docker run -dit centos:7 /bin/bash

(2)容器的終止

docker stop b18

(3)進入容器

[root@localhost ~]# docker exec -it 1ca2 /bin/bash
[root@1ca2a9e95262 /]# ls
anaconda-post.log  dev  home  lib64  mnt  proc  run   srv  tmp  var
bin                etc  lib   media  opt  root  sbin  sys  usr
[root@1ca2a9e95262 /]# exit
exit
[root@localhost ~]# 

(4)容器導出

docker export 1ca2 >centos77

(5)容器導入生成鏡像

docker import centos77 centos77:aaa
docker images

(6)容器刪除

docker rm 1ca2

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

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

相關文章

Oracle獲取執行計劃之DBMS_XPLAN 技術詳解1

在 Oracle 數據庫的管理與優化工作中&#xff0c;深入了解 SQL 語句的執行計劃是至關重要的一環。DBMS_XPLAN 包作為 Oracle 提供的強大工具&#xff0c;能夠幫助數據庫管理員&#xff08;DBAs&#xff09;和開發人員清晰地查看和分析 SQL 語句的執行計劃&#xff0c;從而實現對…

【Python】VScode配置Python教程

文章目錄 【Python】VScode配置Python教程下載Python安裝插件解決亂碼徹底運行vscode安裝python庫 【Python】VScode配置Python教程 前言&#xff1a; 當「Python 編程潛力」遇上「VSCode 開發神器」&#xff0c;會點燃怎樣的效率革命&#xff1f;試想這樣的場景&#xff1a;你…

PowerBI HtmlContent生成表格

假設有銷量表: 1.PowerBI 導入 Html Content對象&#xff0c;并拖入報表 2.新建度量值: 度量值 VAR colCount DISTINCTCOUNT(銷量[產品]) VAR ColumnHeaders "<tr><th styleborder:1px solid black; padding:5px; text-align:center; colspan"&col…

【人工智能與機器人研究】基于運動數據時空特征提取的人類運動片段分割方法

導讀 動作示教方法是非專家用戶對人形機器人進行控制的可靠形式&#xff0c;而對人類動作數據的運動分割與理解是其前提。利用現有方法對所捕獲人類運動原始數據進行關鍵幀提取與運動分割時&#xff0c;由于數據特征不明確&#xff0c;導致難以準確定位運動起始幀、結束幀及分…

ARM內核之CMSIS

1.什么是CMSIS&#xff1f; CMSIS&#xff08;Cortex Microcontroller Software Interface Standard&#xff0c;Cortex微控制器軟件接口標準&#xff09;提供Cortex-M內核與軟件之間的接口&#xff0c;即用戶可以通過這些統一的接口&#xff08;函數API&#xff09;去訪問底…

嵌入式軟件面經(二)Q: Modbus協議CRC校驗的方式是什么?它有哪些優勢?

Modbus協議使用的CRC&#xff08;循環冗余校驗&#xff09;是一種用于確保數據通信完整性和準確性的差錯檢測方法。在Modbus RTU通信中&#xff0c;CRC校驗過程清晰明確&#xff0c;且被廣泛應用于工業通信場景。 一、Modbus協議的CRC校驗流程 &#xff08;一&#xff09;CRC計…

glib-object 中G_DEFINE_TYPE 宏都作了什么?

author: hjjdebug date: 2025年 06月 25日 星期三 15:35:26 CST descrip: glib-object 中G_DEFINE_TYPE 宏都作了什么? 文章目錄 1. 測試代碼2 給出它的展開式.3.說說它都生成了什么?3.1. my_foo_get_type() 函數3.2. static GType my_foo_get_type_once(void)3.3. my_foo_cl…

Alembic遷移系統初始化實戰教程

下面是一份結構清晰、步驟明確的 基于 Alembic Pydantic SQLAlchemy 的數據庫遷移系統初始化教程&#xff0c;非常適合初次搭建項目或團隊規范流程參考。 &#x1f680; Alembic SQLAlchemy Pydantic 項目數據庫遷移初始化教程 本教程將指導你如何從零初始化 Alembic 遷移…

灰度發布怎么保證數據庫一致的

注&#xff1a; 以下內容來源于deepseek答案&#xff0c;生產環境以實際情況為主&#xff01; 在灰度發布中保證數據庫一致的最優解需要同時滿足安全性、低復雜度和高可操作性。結合多年實戰經驗&#xff0c;以下是最推薦的黃金方案&#xff08;適用于90%以上場景&#xff09;&…

不用vue,只用html,即可簡單實現electron項目

為你提供一個 最簡單的 Electron 項目模板&#xff0c;包含完整的代碼、配置和打包說明。即使你是小白&#xff0c;也能快速上手。 1. 項目結構 /your-project├── main.js # Electron 主進程文件├── preload.js # 安全通信腳本&#xff08;可選&#xf…

C++11原子操作:從入門到精通

文章目錄 一、什么是原子操作&#xff1f;二、為什么需要原子操作&#xff1f;三、C11中的<atomic>頭文件四、基本使用1. 聲明原子變量2. 基本原子操作 五、內存順序&#xff08;Memory Order&#xff09;示例&#xff1a;使用內存順序實現自旋鎖 六、原子類型模板七、實…

深入解析Flink Local模式啟動流程源碼:揭開作業初始化的神秘面紗

在Flink的數據處理體系中&#xff0c;Local模式憑借無需依賴分布式集群資源的特性&#xff0c;成為開發測試階段快速驗證作業邏輯的利器。其啟動流程的源碼里&#xff0c;藏著從作業提交到任務執行的完整脈絡。接下來&#xff0c;我們將深入關鍵代碼段&#xff0c;逐行剖析Flin…

二刷 蒼穹外賣 day06

HttpClient 用來提供高效的、最新的、功能豐富的支持HTTP協議的客戶端編程工具包 作用&#xff1a; 發送HTTP請求 接受響應數據 應用場景&#xff1a; 當我們在使用掃描支付、查看地圖、獲取驗證碼、查看天氣等功能時 其實&#xff0c;應用程序本身并未實現這些功能&#xff…

React第六十三節Router中BrowserRouter的用途及注意事項

前言 BrowserRouter 是 React Router 庫的核心組件&#xff0c;用于實現單頁面應用&#xff08;SPA&#xff09;的客戶端路由。它利用 HTML5 History API 管理 URL&#xff0c;實現頁面無刷新跳轉。下面詳細解釋其用途、使用方法和代碼示例&#xff1a; 一、BrowserRouter 核…

《Self-Adapting Language Models》(SEAL)代碼閱讀筆記

代碼&#xff1a;https://github.com/Continual-Intelligence 腳本命令用法&#xff1a;knowledge-incorporation/README.md 生成self-edit數據 腳本&#xff1a;sbatch knowledge-incorporation/scripts/make_squad_data.sh vllm serve啟動Qwen2.5-7B模型的服務。 執行self-e…

GelSight Mini視觸覺傳感器開發資源升級:觸覺3D點云+ROS2助力機器人科研與醫療等應用

近日&#xff0c;GelSight宣布對其GelSight Mini視觸覺傳感器的GitHub支持頁面進行重大更新&#xff0c;圍繞3D點云重建、ROS2 集成及開發者支持體系推出三大核心升級&#xff0c;助力機器人觸覺感知、工業檢測及科研場景落地。 GelSight Mini視觸覺傳感器重磅發布&#xff01;…

6、做中學 | 三年級下期 Golang值類型相互轉換

本次為操作文章&#xff0c;大部分都在討論類型之間如何轉換&#xff0c;使用的是內置方法進行調用執行&#xff0c;詳細使用請移步至&#xff1a; go的API使用文檔地址 https://studygolang.com/pkgdoc 一、數值類型相互轉換 go中數值轉換需要顯示轉換&#xff0c;不能隱式自…

019 高校心理教育輔導系統技術解析:構建心理健康守護平臺

高校心理教育輔導系統技術解析&#xff1a;構建心理健康守護平臺 在關注大學生心理健康成為教育重點的當下&#xff0c;高校心理教育輔導系統借助數字化技術整合多種功能模塊&#xff0c;面向管理員、學生、教師三類角色&#xff0c;實現心理教育輔導工作的高效化與精準化。本…

【ArcGIS】土地資源單項評價

【ArcGIS】土地資源單項評價 一、土地資源單項評價1、評價思路 二、操作步驟1、處理環境設置2、地形坡度評價3、高程評價4、坡度高程疊加評價5、地形起伏度6、土地資源綜合評價 一、土地資源單項評價 1、評價思路 &#xff08;1&#xff09;利用全域DEM計算地形坡度&#xff…

Prioritized Generative Replay

ICLR 2025 Oral code 具有樣本效率的 online reinforcement learning (RL) 通常使用 replay buffer 存儲經驗&#xff0c;以便在更新價值函數時重復使用。然而&#xff0c;uniform replay 效率低下&#xff0c;因為某些類型的 transition 可能與學習更相關。 雖然對更有用的樣本…