docker的安裝配置及使用

一.Docker的由來

Docker 最初是 dotCloud 公司創始人Solomon Hykes 在法國期間發起的一個公司內部項目。

2010年的專門做PAAS平臺,但是到了2013年的時候,像亞馬遜,微軟,Google都開始做PAAS平臺。

到了2013年,公司資金鏈斷裂,不得不倒閉,于是將公司內的核心技術對外開源,核心技術就是Docker。

由于開源了Docker,到了2014年的時候,得到了各輪融資,于是公司開始全神貫注的維護Docker。

二.Docker的思想


Docker是一種容器化技術,也是一種虛擬化技術

  • 封裝:將需要的操作系統,環境,軟件封裝到一個鏡像中。

  • 標準化:

    • 運輸的標準化:Docker提供了中央倉庫,所有官方的鏡像都放在了這個中央倉庫中,當需要使用某一個鏡像時,通過相應的方式拉取即可。

    • 命令的標準化:Docker提供了一些列的命令,幫助我們去獲取鏡像,管理容器等等操作。

    • 提供了REST的API:基于標準REST的API衍生出了很多的圖形化界面,如Rancher等。

  • 隔離性:Docker在運行鏡像時,會在Linux的內核中,單獨的開辟一片空間,這片空間不會影響到其他程序。容器是完全使用沙箱機制,相互隔離,容器性能開銷極低。

鏡像(Image):Docker 鏡像(Image),就相當于是一個 root 文件系統。比如官方鏡像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系統的 root 文件系統。

容器(Container):鏡像(Image)和容器(Container)的關系,就像是面向對象程序設計中的類和對象一樣,鏡像是靜態的定義,容器是鏡像運行時的實體。容器可以被創建、啟動、停止、刪除、暫停等。

倉庫(Repository):倉庫可看成一個代碼控制中心,用來保存鏡像。

三、Docker的安裝


3.1 下載Docker依賴的環境

安裝Docker,需要先將依賴的環境全部下載,就像Maven依賴JDK一樣。

yum -y install yum-utils device-mapper-persistent-data lvm2

3.2 指定Docker鏡像源

默認情況下,下載Docker會從國外服務器下載,速度較慢,我們可以設置為阿里云鏡像源,速度更快。

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3.3 安裝Docker

采用yum的方式安裝。

yum makecache fast
yum -y install docker-ce
 
3.4 啟動Docker并測試

安裝成功后,需要手動啟動,設置為開機自啟,并測試。

# 啟動Docker服務
systemctl start docker
# 設置開機自動啟動
systemctl enable docker
# 查看Docker服務狀態
systemctl status docker
#不開機自動啟動docker
systemctl disable docker
#停止docker
systemctl stop docker
# 重啟
systemctl restart docker
?

四、Docker的中央倉庫【重點


  • Docker官方的中央倉庫:這個倉庫是鏡像最全的,但是下載速度較慢。

    https://hub.docker.com/

  • 國內的鏡像網站:網易蜂巢,daoCloud等,下載速度快,但是鏡像相對不全。

    登錄

    Hub · DaoCloud (推薦使用)

  • 在公司內部會采用私服的方式拉取鏡像,需要添加配置,如下……

# 設置從哪個鏡像源下載鏡像
vi /etc/docker/daemon.json? 
?
# 設置從ustc下載鏡像, 速度快
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
?
# 重啟docker服務
systemctl restart docker
# 需要創建或修改/etc/docker/daemon.json,并添加如下內容,"ip:port"可以編寫多個。
{"registry-mirrors": ["https://registry.docker-cn.com"],"insecure-registries": ["ip:port"] ? 
}
?
# 重啟docker服務
systemctl restart docker

五、鏡像的操作【重點


5.1 搜索鏡像

搜索中央倉庫鏡像

docker search 鏡像名稱
5.2 拉取鏡像

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

docker pull 鏡像名稱[:tag]
?
# 舉個栗子:docker pull daocloud.io/library/tomcat:8.5.15-jre8

5.3 查看本地全部鏡像

查看本地已經安裝過的鏡像信息,包含標識,名稱,版本,更新時間,大小

docker images

5.4 刪除本地鏡像

鏡像會占用磁盤空間,可以直接手動刪除,標識 通過 查看獲取

docker rmi 鏡像的標識 | 鏡像名稱:tag
docker rmi b8dfe9ade316
docker rmi daocloud.io/library/tomcat:8.5.15-jre8

5.5 鏡像的導入導出
  • 如果出現網絡故障,可以采過硬盤的方式傳輸鏡像,雖然不規范,但是有效。

  • 但是這種方式導出的鏡像名稱和版本都是null,需要手動修改

# 將本地的鏡像導出
docker save -o 導出的路徑 鏡像id
doeker save -o /usr/local/abc.tar b8dfe9ade316
# 加載本地的鏡像文件
docker load -i 鏡像文件
docker load -i /usr/local/abc.tar
# 修改鏡像名稱
docker tag 鏡像id 新鏡像名稱:版本
docker tag b8dfe9ade316  mytomcat:1.0

六、容器操作【重點


6.1 運行容器

運行容器需要指定具體鏡像,如果鏡像不存在,會直接下載

# 簡單操作
docker run 鏡像的標識 | 鏡像名稱[:tag]
docker run b8dfe9ade316
docker run daocloud.io/library/tomcat:8.5.15-jre8
# 常用的參數
docker run -di -p 宿主機端口:容器端口 --name 容器名稱 鏡像的標識|鏡像名稱[:tag]
docker run -di -p 8090:8080 --name my_container b8dfe9ade316
# -i 表示運行容器
# -d:代表后臺運行容器(守護式進程)
# -t: 為容器重新分配一個偽輸入終端,通常與 -i 同時使用。 
# -it : 創建交互式進程
# -p 宿主機端口:容器端口:為了映射當前Linux的端口和容器的端口
# --name 容器名稱:指定容器的名稱

守護式進程: 創建容器,自動后臺運行容器

交互式進程:創建容器,自動進入容器,退出容器后,自動關閉容器

6.2 查看正在運行的容器

查看全部正在運行的容器信息

docker ps [-qa]
# -a:查看全部的容器,包括沒有運行
# -q:只查看容器的標識

6.3 查看容器日志

查看容器日志,以查看容器運行的信息

docker logs -f 容器id
# -f:可以滾動查看日志的最后幾行

6.4 進入容器內容部

可以進入容器內部進行操作

docker exec -it 容器id bash
docker exec -it 容器名稱 bash

6.5 復制內容到容器

將宿主機的文件復制到容器內部的指定目錄

docker cp 文件名稱 容器id:容器內部路徑

6.6 重啟&啟動&停止&刪除容器

容器的啟動,停止,刪除等操作,后續經常會使用到

# 重新啟動容器
docker restart 容器id 
?
# 啟動停止運行的容器
docker start 容器id
?
# 停止指定的容器(刪除容器前,需要先停止容器)
docker stop 容器id
# 停止全部容器
docker stop $(docker ps -qa)
?
# 刪除指定容器
docker rm 容器id
# 刪除全部容器
docker rm $(docker ps -qa)

七、Docker應用


7.1 Docker安裝Tomcat

運行Tomcat容器,為部署SSM工程做準備

docker run -d -p 8080:8080 --name tomcat daocloud.io/library/tomcat:8.5.15-jre8

7.2 Docker安裝MySQL

運行MySQL容器,為部署SSM工程做準備

docker run -d -p 3307:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 daocloud.io/library/mysql:5.7.4
?
# 宿主機中通過 3366連接 容器中的mysql
[root@localhost logs]# mysql -uroot -P 3366 -proot -h 192.168.1.135

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

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

相關文章

空調器的銅管

1)、 全新開發的空調器,在鈑金、塑料件結構方案設計的同時,進行配管結構設計,充分考慮整體空間的合理分配,以避免配管設計在其它結構方案確定之后,只局限在有限的空間內進行。 2)、 制冷系統以外的結構件已定型的產品&#xff0c…

仿真模擬--靜態浮動路由

目錄 靜態路由 浮動路由 靜態路由 浮動路由

Verilog描述一個帶有異步置位和異步清零的D觸發器

1 帶有異步置位和異步清零的D觸發器的真值表&#xff1a; 2 Verilog代碼描述 module DFF_SR(CLK, D, Rd, Sd, Q, QN);input CLK, D, Rd, Sd;output Q, QN;reg Q_DFF;always (posedge CLKor negedge Rd or negedge Sd)beginif(!Rd)Q_DFF < 1b0;else if(!Sd)Q_DFF < 1b1;e…

使用 C# 和 OpenXML 讀取大型 Excel 文件

介紹 高效讀取大型 Excel 文件可能具有挑戰性&#xff0c;尤其是在處理需要高性能和可擴展性的應用程序時。Microsoft 的 OpenXML SDK 提供了一套強大的工具來處理 Office 文檔&#xff08;包括 Excel 文件&#xff09;&#xff0c;而無需在服務器上安裝 Excel。本文將指導您使…

華為 Mate 70 系列曝光:首發鴻蒙系統,共四款機型

目前華為在 HDC 2024 大會上宣布&#xff0c;HaemonyOS NEXT 開啟開發者先鋒用戶 Beta 測試&#xff0c;根據官方時間表來看&#xff0c;HaemonyOS NEXT 將在 8 月啟動第一批公開 Beta 測試&#xff0c;第四季度推出第一批正式版以及啟動第二批公測。 華為 Mate 70 系列將會與 …

(深度學習記錄)第TR6周:Transformer實戰-單詞預測

&#x1f368; 本文為&#x1f517;365天深度學習訓練營 中的學習記錄博客&#x1f356; 原作者&#xff1a;K同學啊 | 接輔導、項目定制 &#x1f3e1;我的環境&#xff1a; 語言環境&#xff1a;Python3.11.4編譯器&#xff1a;Jupyter Notebooktorcch版本&#xff1a;2.0.…

Keil 5編譯出現misc.c(90): error: no member named ‘IP‘ in ‘NVIC_Type‘

no member named ‘IP’ in ‘NVIC_Type’ 我們在使用Keil 5編譯器的AC6進行代碼編譯的使用&#xff0c;出現如下的錯誤&#xff1b; 當前的環境 編譯器版本 Keil uVision5&#xff0c;V5.31.0.0&#xff1b; CMSIS-Core 版本V6…1.0&#xff1b; 采用GD32F407VK主芯片&…

【Flutter 面試題】 main future mirotask 的執行順序是怎樣的?

【Flutter 面試題】 main future mirotask 的執行順序是怎樣的? 文章目錄 寫在前面口述回答補充說明實際案例代碼代碼運行結果運行結果說明代碼執行順序的總結寫在前面 ?? 關于我 ,小雨青年 ?? CSDN博客專家,GitChat專欄作者,阿里云社區專家博主,51CTO專家博主。2023…

Java中的微服務架構:設計、部署與管理

Java中的微服務架構&#xff1a;設計、部署與管理 大家好&#xff0c;我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編&#xff0c;也是冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01;今天&#xff0c;我想和大家分享一下Java中的微服務架構&…

【PythonWeb開發】Flask四大內置對象

在Flask中&#xff0c;current_app、g、request、session是非常關鍵的內置對象&#xff0c;它們分別承擔著不同的作用&#xff0c;并廣泛應用于Web開發中的多個環節。 &#xff08;1&#xff09;current_app 它是一個代表當前Flask應用實例的代理對象&#xff0c;允許開發者在…

SQL之日期時間相關知識點及函數

1.日期函數 DATE(): 從日期時間值中提取日期部分。 SELECT DATE(2024-06-16 12:34:56); -- 返回 2024-06-16 CURDATE(): 返回當前日期。 SELECT CURDATE(); -- 返回當前日期&#xff0c;例如 2024-06-16 NOW(): 返回當前日期和時間。 SELECT NOW(); -- 返回當前日期和…

C# 中的 Null:處理缺失值和可空類型

探索數據庫和編程語言中的 NULL 概念&#xff0c;它表示值缺失或數據缺失。了解其在 SQL 中的重要性、其作為占位符的作用等。 在 C# 中&#xff0c;null 是一個關鍵字&#xff0c;表示不引用任何對象的引用。它用于指示不存在值或未初始化的引用。 當變量被賦值為 null 時&a…

微信小程序傳統開發登錄和云開發登錄的區別

1. 傳統開發登錄流程 1. 用戶端調用wx.login從微信服務器獲取code; 2. 用戶端用wx.request將獲取的code傳遞給后端服務器&#xff1b; 3. 后端服務器將拿到的code傳給微信服務器&#xff0c;換取openid和session_key; 4. 后端服務器將獲取到的信息返回給用戶端&#xff1b…

Nuxt3 的生命周期和鉤子函數(一)

title: Nuxt3 的生命周期和鉤子函數&#xff08;一&#xff09; date: 2024/6/25 updated: 2024/6/25 author: cmdragon excerpt: 摘要&#xff1a;本文是關于Nuxt3的系列文章之一&#xff0c;主要探討Nuxt3的生命周期和鉤子函數&#xff0c;引導讀者深入了解其在前端開發中…

C++ | Leetcode C++題解之第198題打家劫舍

題目&#xff1a; 題解&#xff1a; class Solution { public:int rob(vector<int>& nums) {if (nums.empty()) {return 0;}int size nums.size();if (size 1) {return nums[0];}int first nums[0], second max(nums[0], nums[1]);for (int i 2; i < size; …

革新城市景觀:輕空間設計團隊呈現“淄博會展中心”

“淄博會展中心”&#xff0c;作為國內最大的氣膜會展建筑群&#xff0c;自啟用以來已經成為淄博市的亮麗新名片和經濟引擎。該會展中心在第二十屆中國&#xff08;淄博&#xff09;國際陶瓷博覽會上首次亮相&#xff0c;其獨特的設計和先進的建筑理念吸引了廣泛關注。今天&…

MaxWell實時監控Mysql并把數據寫入到Kafka主題中

配置mysql 啟用MySQL Binlog MySQL服務器的Binlog默認是未開啟的&#xff0c;如需進行同步&#xff0c;需要先進行開啟 修改MySQL配置文件/etc/my.cnf sudo vim/etc/my.cof 增加如下配置 注&#xff1a;MySQL Binlog模式 Statement-based&#xff1a;基于語句&#xff0c;…

深入解析:批處理文件中echo命令的多功能用法

深入解析&#xff1a;批處理文件中echo命令的多功能用法 批處理文件&#xff0c;通常以.bat或.cmd為擴展名&#xff0c;在Windows操作系統中扮演著自動化腳本的角色。在這些腳本中&#xff0c;echo命令是使用最頻繁的命令之一。本文將詳細解釋echo命令的多種用法&#xff0c;并…

記錄bug導致測試部署出錯,但是本地環境啟動正常。雪花算法使用中報錯。并帶有源碼分析。

bug出現背景 集群產生的日志要求traceId不重復&#xff0c;使用雪花算法生成traceId 報錯形式如下 為什么本地無法復現測試環境的bug 因為bug的出現本身就是概率性的事件 代碼如下 public static Long workId Long.parseLong(String.valueOf(NetUtil.getLocalhostStr().ha…

故障診斷 | HO-VMD-TCN河馬優化算法優化變分模態分解時間卷積神經網絡故障診斷模型

效果一覽 文章概述 故障診斷 | HO-VMD-TCN河馬優化算法優化變分模態分解時間卷積神經網絡故障診斷模型&#xff01;河馬優化算法&#xff08;Hippopotamus optimization algorithm&#xff0c;HO&#xff09;由Amiri等人于2024年提出&#xff0c;該算法模擬了河馬在河流或池塘中…