容器docker入門學習

這里寫目錄標題

  • 容器
    • 容器的軟件廠商
  • docker
    • docker引擎
  • 虛擬化
    • 虛擬化技術
  • docker安裝詳解
    • 1、安裝檢查
    • 2、安裝yum相關的工具
    • 3、安裝docker-ce軟件
    • 4、查看docker版本
    • 5、啟動docker服務
    • 6、設置docker開機啟動
    • 7、查看有哪些docker容器運行進程
    • 8、查看容器里有哪些鏡像
    • 9、下載nginx軟件
    • 10、啟動一個docker容器的命令
    • 11、啟動一個為sc-nginx的容器
    • 12、查看防火墻的設置
    • 13、防火墻nat詳解
    • 14、nginx訪問測試

容器

輕量級的虛擬機,更加節省資源(cpu、內存、磁盤、帶寬等)的虛擬機。
優點:省錢、成本低、速度更加快,擴展性更加強。serverless。

容器的軟件廠商

① docker:提供容器技術的軟件;
② k8s:kubernetes是容器集群管理軟件,可以管理很多臺服務器上的docker啟動的容器。可以實現容器的分布式管理,綜合很多容器的軟件。k8s也是一個軟件,用來管理多臺服務器上的docker容器的。容器集群編排工具。

docker

docker是一個輕量級、可移植的虛擬化技術,通過容器化技術實現應用程序的打包、運輸和運行。
docker
在這里插入圖片描述

container集裝箱一個封閉的空間,里面可以運行我們的程序。
1、集裝箱container
集裝箱:存放貨物的地方
在這里插入圖片描述
有隔離作用:靠Linux內核來實現的。一個進程對應一個容器。
2、what a container
a standard unit of software。
1、docker的框架:一個真實的機器里面裝一個linux系統,系統里面裝docker,docker里面再裝容器,每個容器里面裝一個服務。
在這里插入圖片描述
3、docker和容器的區別
docker都是用來管理容器的一個軟件。

docker引擎

Docker引擎是一種開源容器化技術,用于構建和容器化應用程序。Docker引擎充當客戶端-服務器應用程序,具有:
① 具有長時間運行的守護進程dockerd的服務器。
② 指定程序可用于與Docker守護程序通信和指示docker守護程序的接口的API。
③ 命令行界面(CLI)客戶端泊塢窗。

CLI使用Docker API通過腳本或直接CLI命令來控制Docker守護程序或與Docker守護程序交互。許多其他Docker應用程序使用底層API和CLI。守護程序創建和管理Docker對象,例如鏡像、容器、網絡和卷。

虛擬化

虛擬化virtualization:模擬出來的,不是物理的,算真的。
容器技術:container,存放東西的地方。容納別的東西的器皿。
docker,containerd,k8s等。

虛擬化技術

VMware:workstation :入門級的產品
docker:容器技術的經典代表。
CNF 云原生基金會:Google Redhat ibm等:K8S(kubernetes):containerd(容器運行時軟件)
docker是容器運行時軟件----容器軟件
k8s是管理容器運行時的軟件(docker、containerd、rki等)—k8s理解為管理docker集群的軟件。
k8s是建立再docker上的。
docker和k8s都是使用go語言開發的
只要是與k8s相關的技術都叫云原生相關的技術,容器理解為一個虛擬機,虛擬機是不是運行軟件?

docker安裝詳解

安裝具體流程可以參考之前的文章,這里做個大概的安裝流程介紹:
docker安裝詳細教程

1、安裝檢查

卸載原來安裝過的docker,如果沒有安裝的就不用進行卸載

sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine

2、安裝yum相關的工具

下載docker-ce.repo文件

yum install -y yum-utils
yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.repo

下載docker-ce.repo文件做個文件存在/etc/yum.repo.d

3、安裝docker-ce軟件

container engine:容器引擎
docker是一個容器管理的軟件
docker-ce:是服務器端軟件 server
docker-ce-cli:是客戶端軟件 client
docker-compose-plugin

yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y

4、查看docker版本

docker --version

[root@sc-master shell]# docker --version
Docker version 20.10.17, build 100c701

5、啟動docker服務

systemctl start docker

systemctl start docker

6、設置docker開機啟動

systemctl enable docker

systemctl enable docker

1個docker 啟動的每一個容器的背后就是一個linux進程

7、查看有哪些docker容器運行進程

docker ps

[root@sc-master shell]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS  

8、查看容器里有哪些鏡像

docker images --images 鏡像,鏡像里面包含了我們需要的軟件的代碼和基礎環境。

[root@sc-master shell]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
hello-world   latest    feb5d9fea6a5   11 months ago   13.3kB

9、下載nginx軟件

docker pull nginx

[root@sc-master shell]# docker images 查看nginx鏡像軟件
REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
nginx         latest    2b7d6430f78d   2 days ago      142MB
hello-world   latest    feb5d9fea6a5   11 months ago   13.3kB

10、啟動一個docker容器的命令

docker run
啟動一個容器,可以理解為開啟一臺虛擬機,相當于將nginx放入容器中進行運行,這樣就可以限制其他的cpu資源。

11、啟動一個為sc-nginx的容器

docker run -d -p 8090:80 --name sc-nginx nginx

[root@sc-master shell]# docker run -d -p 8090:80 --name sc-nginx nginx
1d3e0fdfaf8f971523ce5b539dda1c6c8c609c8e88c29361ed77e2f778e376e0

注解:
-d:在后臺運行demo 、daemon守護進程
-p 8090:80 指定端口映射 DNAT:訪問本機的8090端口,轉發到docker容器的80端口。
–name sc-nginx 指定容器的名字為:sc-nginx
nginx是鏡像的名字

12、查看防火墻的設置

iptables -t nat -L

[root@sc-master shell]# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
DOCKER     all  --  anywhere             anywhere             ADDRTYPE match dst-type LOCAL
DNAT       tcp  --  anywhere             anywhere             tcp dpt:8090 to:172.17.0.2:80

查看容器啟動的進程:

[root@sc-master shell]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS                                   NAMES
1d3e0fdfaf8f   nginx     "/docker-entrypoint.…"   7 minutes ago   Up 7 minutes   0.0.0.0:8090->80/tcp, :::8090->80/tcp   sc-nginx

13、防火墻nat詳解

圖片理解:使用了nat功能,用戶要去訪問:
在這里插入圖片描述
docker0:是宿主機與其他容器之間進行通信的網關,也就是lan口。

14、nginx訪問測試

然后去客戶機上能否訪問,訪問宿主機的8090端口,去瀏覽器上輸入:http://宿主機ip地址:8090/
我的是:http://192.168.2.152:8090/
在這里插入圖片描述
如果因為鏡像沒有訪問到的話,可以先關閉防火墻和重啟docker服務進行解決,如果重啟docker服務的話,可能會導致之前的鏡像停止,所以先查看所有的容器,包括停止的,然后再啟動已經停止的容器。
1、關閉防火墻:

service firewalld stop

2、重啟docker服務

service docker restart 

3、查看所有的容器,包括已經停止的

docker ps -a

4、啟動已經停止的容器

docker start sc-nginx

5、再查看是否已經啟動成功

docker ps

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

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

相關文章

文獻總結:NIPS2023——車路協同自動駕駛感知中的時間對齊(FFNet)

FFNet 一、文獻基本信息二、背景介紹三、相關研究1. 以自車為中心的3D目標檢測2. 車路協同3D目標檢測3. 特征流 四、FFNet網絡架構1. 車路協同3D目標檢測任務定義2. 特征流網絡2.1 特征流生成2.2 壓縮、傳輸與解壓縮2.3 車輛傳感器數據與基礎設施特征流融合 3. 特征流網絡訓練流…

git 出現 port 443 Connection timed out

梯子正常延遲不算嚴重,但在使用git push時反復出現 fatal: unable to access https://github.com/irvingwu5/xxxx.git/ Error in the HTTP2 framing layer Failed to connect to github.com port 443 after 136353 ms: Connection timed out 將git的網絡配置與梯子…

【2025年4月18日】android studiio最新設置沉浸式狀態欄教程

😫【2025年4月18日】搞了一整天,終于完美搞定 Android 沉浸式狀態欄(WebView 本地HTML) 最近在做一個個人項目,用 Android 加載本地 HTML 做個小工具。按理說用 WebView 加載頁面很簡單嘛——結果沉浸式狀態欄這個坑…

如何刪除 Launchpad 中 Chrome 的圖標

有一天突然在 Launchpad 中出現下面的圖標,在 Finder 的 Applications 中也沒有,不知道如何刪除。最終在《How to remove chrome app icons from launchpad?》中找到了答案。中文互聯網上并沒有搜到相關帖子,遂作記錄。 解決辦法很簡單&am…

PHP8.2.9NTS版本使用composer報錯,擴展找不到的問題處理

使用composer install時報錯: The openssl extension is required for SSL/TLS protection but is not available. If you can not enable the openssl extension, you can disable this error, at y our own risk, by setting the ‘disable-tls’ option to true.…

一本通 2063:【例1.4】牛吃牧草 1005:地球人口承載力估計

Topic: Ideas: 為什么把這兩道題放在一起呢?就是因為這兩道題很類似,都是很簡單的數學題,只要你會列出數學等式,你就學會這道題了! 下面把計算過程展示給大家 Code: //2025/04/18…

基于用戶的協同過濾推薦系統實戰項目

文章目錄 基于用戶的協同過濾推薦系統實戰項目1. 推薦系統基礎理論1.1 協同過濾概述1.2 基于用戶的協同過濾原理1.3 相似度計算方法1.3.1 余弦相似度(Cosine Similarity)1.3.2 皮爾遜相關系數(Pearson Correlation)1.3.3 歐幾里得距離(Euclidean Distance)1.3.4 調整余弦相似度…

【SpringBoot】基于Filter實現SQL注入過濾器

最近掃出了一個SQL注入安全漏洞,用戶的非法輸入可能導致數據泄露、數據篡改甚至系統崩潰,為了有效防范 SQL 注入攻擊,除了在代碼層面使用參數化查詢和預編譯語句外,還可以通過實現一個Filter來過濾掉潛在的危險輸入。本文將介紹如…

Spring Boot 項目里設置默認國區時區,Jave中Date時區配置

在 Spring Boot 項目里設置國區時區(也就是中國標準時間,即 Asia/Shanghai),可通過以下幾種方式實現: 方式一:在application.properties或application.yml里設置 application.properties properties sp…

Python環境中在線訓練機器學習模型所遇到的問題及解決方案

我最近開發個智能控制系統,包括實時數據采集、預測、策略優化等功能,最近增加在線學習功能,也就是在線進行模型訓練,在線進行模型訓練時出現了問題,現象為: 控制臺報: cmdstanpy - INFO - Chain [1] start processing所有任務、線程停止,Web服務登錄無法訪問后臺的pyt…

【教程】無視硬件限制強制升級Windows 11

轉載請注明出處:小鋒學長生活大爆炸[xfxuezhagn.cn] 如果本文幫助到了你,歡迎[點贊、收藏、關注]哦~ 1、下載升級工具:https://github.com/builtbybel/Flyby11/releases 2、解壓后打開軟件: 3、拖入win11.iso或者自動下載&#xf…

麥科信汽車診斷示波器在機車維修領域中的應用實例

麥科信汽車診斷示波器在機車維修領域中的應用實例 “Micsig SATO1004的錯誤幀統計功能與歷史波形存儲,讓我們在診斷間歇性CAN故障時有了決定性武器。這不僅是工具升級,更是維修理念的革新。” — Ian Coffey, Mototek技術總監(歐洲ECU診…

【IDEA2020】 解決開發時遇到的一些問題

目錄 一、批量更新數據庫數據 逐條更新 Db.updateEntitiesBatch() 二、Error running&#xff0c;Command line is too long. Shorten command line 報錯場景 報錯分析 解決方法 一、批量更新數據庫數據 逐條更新 List<UserModel> ums userMapper.selectListBy…

算法01-最小生成樹prim算法

最小生成樹prim算法 題源&#xff1a;代碼隨想錄卡哥的題 鏈接&#xff1a;https://kamacoder.com/problempage.php?pid1053 時間&#xff1a;2025-04-18 難度&#xff1a;4? 題目&#xff1a; 1. 題目描述&#xff1a; 在世界的某個區域&#xff0c;有一些分散的神秘島嶼&…

cpolar 內網穿透 實現公網可以訪問本機

1、登錄網站&#xff0c;升級成專業版&#xff0c;測試的話建議選一個月付費&#xff0c;選擇預留 2、保留的TCP地址增加一條記錄&#xff0c;描述可以自己取 3、驗證&#xff0c;生成一個Authtocken碼 4、在安裝目錄下&#xff0c;打開CMD命令&#xff0c;復制上面的碼運行aut…

c#內存泄露的原因和解決辦法

內存泄漏的原因 不正確的對象引用&#xff1a;最常見的原因是對象不再需要時未被垃圾回收器回收。例如&#xff0c;如果一個對象被一個不再使用的變量引用&#xff0c;它將不會被垃圾回收。事件訂閱者未取消&#xff1a;如果訂閱了一個事件但沒有在對象不再需要時取消訂閱&…

TDengine Restful 接口API

簡介 為支持各種不同類型平臺的開發&#xff0c;TDengine 提供符合 RESTful 設計標準的 API&#xff0c;即 REST API。為最大程度降低學習成本&#xff0c;不同于其他數據庫 REST API 的設計方法&#xff0c;TDengine 直接通過 HTTP POST 請求 BODY 中包含的 SQL 語句來操作數…

【Contiki】Contiki process概述

00. 目錄 文章目錄 00. 目錄01. 進程類型02. 進程結構03. 事件04. 進程調度函數05. 程序實例06. process實現07. 附錄 01. 進程類型 進程類型主要有**協同式&#xff08;cooperative&#xff09;和搶占式&#xff08;preemptive&#xff09;**兩種。 協同式進程&#xff0c;要…

哪種電腦更穩定?Mac?Windows?還是云電腦? 實測解密

隨著科技的發展進步&#xff0c;電腦已成為當下各類群體的必備產品之一&#xff0c;它的妙用有很多&#xff0c;無論是學生黨、打工人還是已經退休的人群或都離不開它的存在。然而&#xff0c;電腦雖好卻也差異很大、不同品牌、不同系統、不同配置、不同價位的統統都會有區別。…

華為openEuler操作系統全解析:起源、特性與生態對比

華為openEuler操作系統全解析&#xff1a;起源、特性與生態對比 一、起源與發展歷程 openEuler&#xff08;歐拉操作系統&#xff09;是華為于2019年開源的Linux發行版&#xff0c;其前身為華為內部研發的服務器操作系統EulerOS。EulerOS自2010年起逐步發展&#xff0c;支持華…