【docker】docker總結

一、Docker簡介

  • Docker是開源應用容器引擎,輕量級容器技術。
  • 基于Go語言,并遵循Apache2.0協議開源
  • Docker可以讓開發者打包他們的應用以及依賴包到一個輕量級、可移植的容器中,然后發布到任何流行的Linux系統上,也可以實現虛擬化
  • 容器完全使用沙箱技術,相互之間不會有任何接口
  • 類似于虛擬機技術(vmware、vitural),但docker直接運行在操作系統(Linux)上,而不是運行在虛擬機中,速度快,性能開銷極低

白話文,簡介就是:

Docker支持將軟件編譯成一個鏡像,然后在鏡像中各種軟件做好配置,將鏡像發布出去,其他使用者可以直接使用這個鏡像。
運行中的這個鏡像稱為容器,容器啟動是非常快速的。類似windows里面的ghost操 作系統,安裝好后什么都有了。

二、Docker核心概念

  • docker鏡像(Images):Docker鏡像是用于創建Docker容器的模板
  • docker容器(Container):鏡像啟動后的一個實例稱為容器,容器是獨立運行的一個或一組應用,
  • docker客戶端(Client):客戶端通過命令行或其他工具使用Docker API(https://docs.docker.com/reference/api/docker_remote_api)與Docker的守護進程進行通信
  • docker主機(Host):一個物理或虛擬的機器用來執行Docker守護進程和容器
  • docker倉庫(Registry):Docker倉庫用來存儲鏡像,可以理解為代碼控制中的代碼倉庫,Docker Hub(https://hub.docker.com) 提供了龐大的鏡像集合供使用

三、Docker安裝及啟停

1. 查看centos版本

Docker 要求 CentOS 系統的內核版本高于 3.10

通過命令:

uname -r

查看當前centos版本,如版本不符,需升級系統版本

2 升級軟件包及內核(可選)
yum update
3. 安裝docker
yum install docker
4. 啟動docker
systemctl start docker
5. 將docker服務設為開機啟動
systemtctl enable docker
5. 停止docker
systemtctl stop docker

四、Docker常用命令及操作

4.1 docker鏡像命令

通常情況下,Docker的鏡像都放在Docker的官網 Docker Hub上,點此前往官網

4.1.1 鏡像檢索

除了可以在Docker Hub上搜索鏡像外,還可以通過命令 docker search xxx 進行搜索,下面以 mysql 為例:

docker search mysql

結果如下:

請添加圖片描述

4.1.2 鏡像下載

下載命名為:docker pull 鏡像名:tag,其中tag多為系統的版本,可選的,默認為least

docker pull mysql
4.1.3 鏡像列表

獲取已下載鏡像列表命令:docker images
請添加圖片描述

其中,

RESPOSITORY為鏡像名
TAG為鏡像版本,least代表最新版
IMAGE_ID為該鏡像唯一ID
CREATED為該鏡像創建時間
SIZE為該鏡像大小

4.1.1 鏡像刪除

刪除指定鏡像:

docker rmi image-id

刪除所有鏡像:

docker rmi $(docker images -q)
4.2 容器操作

可以理解為軟件下載(下載QQ)–>安裝(QQ)–>運行(QQ)的過程。
下面以Tomcat為例

4.2.1 搜索鏡像
docker search tomcat
4.2.2 下載鏡像
docker pull tomcat
4.2.3 根據鏡像啟動容器

最簡單的運行鏡像為容器的命令如下:

docker run --name container-name -d image-name

運行一個容器,使用docker run命令即可。

-- name:為容器起一個名稱
-d:detached,執行完這句命令后,控制臺將不會阻塞,可以繼續輸入命令操作
image-name:要運行的鏡像名稱

4.2.4 查看運行中容器

可通過如下命令,查看運行中的容器列表:

docker ps

請添加圖片描述

CONTAINER ID:啟動時生成的ID
IMAGE:該容器使用的鏡像
COMMAND:容器啟動時執行的命令
CREATED:容器創建時間
STATUS:當前容器狀態
PORTS:當前容器所使用的默認端口號
NAMES:啟動時給容器設置的名稱

4.2.5 停止運行中容器

通過以下命令來停止運行中的容器:

docker stop container-name/container-id
4.2.5 查看所有的容器

通過以下命令可查看運行和停止的所有容器:

docker ps -a
4.2.6 啟動容器

通過以下命令啟動容器:

docker start container-name/container-id
4.2.7 刪除容器

刪除單個容器:

docker rm container-id

刪除所有容器:

docker rm $(docker ps -a -q )
4.2.8 啟動做端口映射的容器

Docker運行容器之后卻發現沒IP,沒端口,也就是說,啟動容器的時候如果不指定對應參數,在容器外部是無法通過網絡來訪問容器內的網絡應用和服務的。 所以需要通過Docker端口映射來實現網絡訪問。

Docker的端口映射通過-p參數實現,命令如下:

docker run --name tomcat1 -d tomcat
docker run --name tomcat2 -d -p 8888:8080 tomcat

如上,就把主機端口8888請求映射到Docker容器內部端口8080了。

執行完這兩條命令后,通過docker ps查看:

請添加圖片描述

通過PORTS可以看出,tomcat2是做了端口映射的,tomcat1是沒進行映射過的。

分別通過瀏覽器訪問:

http://*.*.*.*:8080/ // tomcat1默認端口

http://*.*.*.*:8888/ //

做過端口映射的Tomcat2,8888會轉發請求到tomcat2的8080
結果如下:

第一個請求是無法請求到的,原因開篇處說過了。
第二個請求是可以正常進行請求的,會由tomcat2容器進行處理

端口映射格式:

ip:hostport:containerport  #指定ip、指定主機port、指定容器port
ip::containerport        #指定ip、未指定主機port、指定容器port
hostport:container         #未指定ip port、指定主機port、指定容器port  
4.2.9 查看容器日志

查看當前容器日志,可通過如下命令:

docker logs container-id/container-name
4.2.10 查看端口映射

可以通過如下命令查看容器映射了哪些端口及協議:

docker port container-id

示例:

[root@docker ~]#docker port 46114af6b44e
8080/tcp -> 0.0.0.0:8888
[root@docker ~]#docker port cea668ee4db0

如果返回空,則代表沒進行端口映射。

4.2.11 登錄退出容器

運行中的容器其實是一個功能完備的Linux操作系統,所以我們可以像常規系統一樣進行登陸及退出操作。

登錄命令為:

docker exec -it container-id/container-name bash

退出命令為:

exit
4.2.12 更多操作命令

更多命令可以參考:
https://docs.docker.com/engine/reference/commandline/docker/

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

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

相關文章

No matching variant of com.android.tools.build:gradle:7.4.2 was found.

一、報錯信息 創建個新項目,運行直接報錯,信息如下: No matching variant of com.android.tools.build:gradle:7.4.2 was found. The consumer was configured to find a runtime of a library compatible with Java 8, packaged as a jar,…

shell 條件語句

目錄 測試 test測試文件的表達式 是否成立 格式 選項 比較整數數值 格式 選項 字符串比較 常用的測試操作符 格式 邏輯測試 格式 且 (全真才為真) 或 (一真即為真) 常見條件 雙中括號 [[ expression ]] 用法 &…

springboot啟動過程

1、SpringApplication new一個對象會優先調用initialize方法 public SpringApplication(Object... sources) {initialize(sources); } private void initialize(Object[] sources) {//添加配置類SpringBootApplicationif (sources ! null && sources.length > 0) …

關于一些bug的解決1、el-input的輸入無效2、搜索之后發現數據不對3、el多選框、單選框點擊無用4、

el-input輸入無效 原來的代碼是 var test null 但是我發現不能輸入任何值 反倒修改test的初始值為123是可以的 于是我確定綁定沒問題 就是修改的問題 于是改成 var test ref() v-model綁定的值改成test.value就可以了 因為ref是相應式的 可以通過輸入…

【算法】奇偶游戲(帶權并查集)

題目 小 A 和小 B 在玩一個游戲。 首先,小 A 寫了一個由 0 和 1 組成的序列 S,長度為 N。 然后,小 B 向小 A 提出了 M 個問題。 在每個問題中,小 B 指定兩個數 l 和 r,小 A 回答 S[l~r] 中有奇數個 1 還是偶數個 …

cocos2dx ??Animate3D(三)

一些總結 動作(Actions) move移動:moveto/moveby 從一個位置移動到另外一個位置 從一個位置移動多少數量級rotate旋轉:rotateto/rotateby 從一個角度旋轉到另外一個角度 旋轉多少個數量級scale縮放:scaleto/scaleby …

vue實現瀏覽器禁止鼠標選中文字禁止右鍵禁止F12鍵

1. 禁止鼠標選中文字 document.onselectstart new Function("event.returnValuefalse");2.禁止右鍵 document.oncontextmenu new Function("event.returnValuefalse");3. 禁止F12鍵 document.addEventListener("keydown", function (e) {if…

Go語言多線程爬蟲萬能模板它來了!

對于長期從事爬蟲行業的技術員來說,通過技術手段實現抓取海量數據并且做到可視化處理,我在想如果能寫一個萬能的爬蟲模板,后期遇到類似的工作只要套用模板就能解決大部分的問題,如此提高工作效率何樂而不為? 以下是一個…

有關Vue、微信小程序、UniApp中的CSS中的寬度width單位、自適應

在Vue中,可以使用以下單位來設置寬度(width) 像素(px):最常用的單位,表示一個絕對長度單位。例如,width: 200px; 表示寬度為200像素。百分比(%):…

Mac自帶的看圖如何連續查看多張圖片

一、問題 mac看訪達里的圖片時,雙擊打開一張圖片,然后按上下左右鍵都沒法切換到另外的圖片。而且也沒找到像window一樣單擊縮略圖可以看到預覽圖。其實是自己不懂得怎么使用,哈哈哈😂 二、方法 2.1、圖標方式 可以看到縮略圖&a…

新的centos7.9安裝jenkins(二)

更多ruoyi-nbcio功能請看演示系統 gitee源代碼地址 前后端代碼: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后臺管理系統 接上一節文章。 這個版本默認git也安裝好了,所以全局配置這個不需要了。 maven安裝3.9.3版本…

前綴和——DP35 【模板】二維前綴和

文章目錄 🍎1. 題目🍒2. 算法原理🍅3. 代碼實現 🍎1. 題目 題目鏈接:【模板】二維前綴和_牛客題霸_牛客網 (nowcoder.com) 描述 給你一個 n 行 m 列的矩陣 A ,下標從1開始。 接下來有 q 次查詢&#xff0…

ElasticSearch的日志配置

ElasticSearch默認情況下使用Log4j2來記錄日志,日志配置文件的路徑為$ES_HOME/config/log4j2.properties,配置方法見Log4j2的官方文檔。 參考path-settings,通過指定path.logs,可以指定日志文件的保存路徑。 在日志配置文件$ES_…

【OpenCV實現圖像:使用OpenCV生成拼圖效果】

文章目錄 概要通用配置不考慮間隔代碼實現考慮間隔代碼實現小結 概要 概要: 拼圖效果是一種將圖像切割為相鄰正方形并重新排列的藝術效果。在生成拼圖效果時,可以考慮不同的模式,包括是否考慮間隔和如何處理不能整除的部分。 不考慮間隔&a…

【NLP】GPT 模型如何工作

介紹 2021 年,我使用 GPT 模型編寫了最初的幾行代碼,那時我意識到文本生成已經達到了拐點。我要求 GPT-3 總結一份很長的文檔,并嘗試了幾次提示。我可以看到結果比以前的模型先進得多,這讓我對這項技術感到興奮,并渴望…

HQL刷題 50道

HQL刷題 50道 尚硅谷HQL刷題網站 答案 1.查詢累積銷量排名第二的商品 select sku_id from (select sku_id, dense_rank() over (order by total desc) rnfrom (select sku_id, sum(sku_num) totalfrom order_detailgroup by sku_id) t1) t2 where rn 2;2.查詢至少連續三天下…

php 時區查看和設置

php的時區&#xff0c;關系到相關時間函數的結果 其他相關&#xff1a; linux時區設置&#xff1a;鏈接 pgsql時區設置&#xff1a; 一、查看可以用的時區列表 新建一個php文件&#xff0c;輸入下面程序即可 <?php echo "<pre>"; var_dump(timezone_id…

基于go-zero的rpc服務示例

以下是一個基于 go-zero 框架的簡單 RPC 服務示例&#xff0c;該示例包括一個服務端和一個客戶端通過 gRPC 進行通信。 服務端 1、定義 .proto 文件 在 rpc/add 目錄下創建 adder.proto 文件&#xff0c;定義 RPC 服務&#xff1a; syntax "proto3";package add…

IOS+Appium+Python自動化全實戰教程

由于公司的產品坐落于不同的平臺&#xff0c;如ios、mac、Android、windows、web。因此每次有新需求的時候&#xff0c;開發結束后&#xff0c;留給測試的時間也不多。此外&#xff0c;一些新的功能實現&#xff0c;偶爾會影響其他的模塊功能正常的使用。 網上的ios自動化方面的…

MyBatis-Plus的分頁插件和樂觀鎖插件

MyBatis-Plus: 探索分頁查詢和樂觀鎖插件 在現代的Web應用開發中&#xff0c;高效的數據處理是不可或缺的一部分。MyBatis-Plus&#xff0c;作為MyBatis的增強版&#xff0c;提供了多種插件來簡化和優化數據庫操作。在這篇博客中&#xff0c;我們將重點介紹兩個非常實用的插件…