本文主要介紹Docker容器技術概述、Docker的安裝及相關常見操作命令。
Docker容器技術概述
Docker重新定義了程序開發測試、交付和部署的過程。
隨著雲計算技術的深入發展,使用虛擬伺服器代替傳統的物理伺服器越來越常見。
伺服器虛擬化的思想是在性能強勁的伺服器上運行多個虛擬機,每個虛擬機運行獨立的作業系統與相應的軟體。通過虛擬機管理器可以隱藏真實機器的物理配置。其中虛擬機中運行的作業系統稱為客戶作業系統(Guest OS),伺服器運行的作業系統稱為主機作業系統(Host OS)。
物理伺服器運行著主機作業系統,虛擬機管理器進行硬體虛擬化,向虛擬機提供CPU、內存、網絡、顯卡等虛擬設備,虛擬機運行著客戶作業系統和應用程式。
有一種技術不進行硬體虛擬化,就能讓虛擬機直接使用物理伺服器的CPU、內存、網絡等,即容器技術。在一臺物理伺服器上安裝Linux作業系統,通過容器技術創建多個虛擬伺服器,這些虛擬伺服器和物理伺服器共用Linux內核。
Docker容器技術共享伺服器Linux作業系統內核和文件系統,性能得到極大提高,並不像虛擬機那樣模擬 一個完整的作業系統,卻提供虛擬機一樣的效果。
虛擬機是作業系統級別的隔離,容器是進程級別的隔離。
Docker是開源的應用容器引擎,開發者可以將應用及其依賴的軟體一起打包到容器中,實現一次部署到處運行的效果。當應用切換伺服器時,再次部署相當於複製一個文件的操作,節約大量的安裝部署時間。
Docker容器技術優勢
1、啟動快、解決虛擬機資源消耗問題
啟動容器相當於啟動本機一個進程,啟動速度快。一臺電腦運行一個Linux虛擬機可能會卡頓,卻可以使用Docker虛擬幾十甚至上百臺虛擬Linux伺服器,容器僅佔用用到的資源,多個容器可共享資源。
2、體積小、快速部署
開發的應用在自己電腦上運行,換一臺機器可能無法運行,需要環境配置。
使用Docker可以將應用程式及依賴包打包在一個文件裡,運行這個文件就會啟動虛擬伺服器。
3、提供一次性環境
啟動或關閉一個虛擬伺服器就像啟動或關閉一個進程一樣簡單、快速。
4、組建微服務架構
通過多個容器,一臺機器可以跑很多虛擬伺服器,一臺機器上可以虛擬出微服務架構,也可以模擬出分布式架構。
Docker的安裝部署與使用
下載網址:https://docs.docker.com/
一、Windows下安裝Docker
雙擊 Docker Desktop Installer.exe 運行安裝程序,在 Windows 上安裝 Docker 桌面應用。
1)首先確保windows開啟虛擬化功能
勾選確定後,重啟電腦生效,在任務管理器中即可查看虛擬化功能是否開啟
2)出現提示時,確保在「配置」頁面上選擇「啟用 Hyper-V Windows 功能」或「為 WSL 2 安裝所需的 Windows 組件」選項。
按照安裝嚮導上的說明授權安裝程序並繼續安裝。
安裝成功後,單擊關閉完成安裝過程,最後Docker成功啟動如下圖所示。
註:
安裝重啟後,docker會啟動失敗,不用慌,直接根據提示點擊連結下載更新wsl版本並安裝即可解決。
3)配置鏡像加速
後續進一步介紹伺服器中Linux(Ubuntu)系統下Docker安裝與使用。
二、Docker的命令使用方法
參考:https://docs.docker.com/go/guides/
操作工具:利用Win10自帶的powershell命令終端以管理員身份打開,執行Docker操作命令。
查看Docker命令的幫助信息,查看常見命令
1、查看Docker命令的幫助信息
docker --help #docker全部命令幫助信息docker command --help #docker具體命令commad的幫助信息
2、查看docker信息和版本docker info #容器的池、已用數據大小、總數據的大小、基本容器大小、當前運行容器數量等。docker version #查看docker版本
3、鏡像操作
1)搜索鏡像,查看網上已經做好的容器鏡像
docker search python
我們也可以製作包含自己應用或服務的鏡像文件,此文件共享給他人,即可直接使用Docker打開容器
2)網絡中拉取下載鏡像
docker image pull <repository>:<tag>
或docker pull <repository>:<tag>
下載倉庫Python鏡像
3)導入下載好的容器鏡像文件docker load < image_xxx.tar
4)查看當前已有鏡像docker images
註:以上為拉取的Python鏡像
REPOSITORY:鏡像遠程倉庫源
TAG:鏡像標籤
IMAGE ID :鏡像ID
CREATED :鏡像創建時間
SIZE :鏡像大小
5)刪除鏡像(通過鏡像名稱或id來指定刪除)
docker rmi <鏡像ID或名稱>
6)刪除所有的鏡像
docker rmi $(docker images -q)
4、創建並運行容器
docker run <容器名稱>
docker run -dit --name="容器名稱" 鏡像ID或名稱 /bin/sh
#創建一個名為python~的容器。
5、查看容器docker ps -a #查看所有容器docker ps -l #列出最近一次啟動的容器
註:創建不同容器ID是不一樣的,但利用的鏡像文件ID是創建時引用決定的
6、進入容器
docker exec -it <容器名>/bin/bash
docker exec -it <容器ID> bash
註:可知這裡的容器是帶Python環境的Linux系統
7、複製容器裡文件、目錄到本地伺服器
1)從容器裡面拷文件到宿主機:docker cp CONTAINER: SRC_PATH DEST_PATH
docker cp 容器名:要拷貝的文件在容器裡面的路徑 要拷貝到宿主機的相應路徑
2)從宿主機拷文件到容器裡面:docker cp SRC_PATH CONTAINER: DEST_PATH
docker cp 要拷貝的文件路徑 容器名:要拷貝到容器裡面對應的路徑
註:不管容器有沒有啟動,拷貝命令都會生效
8、停止、啟動、重啟、退出容器
docker stop <容器ID>
docker start <容器ID>
docker restart <容器ID>
exit或ctrl+d #退出容器
9、刪除容器(刪除前先停止該容器運行)
docker stop <容器ID>
docker rm <容器ID> #刪除單個容器
docker rm/kill $(docker ps -a -q) #停止所有容器
10、容器的備份和恢復
docker commit -p<容器ID>備份命名 #備份,導出到本地
docker save 備份名> 導出本地容器路徑全名
docker load -i 本地容器路徑 #恢復容器
- 合作、交流、轉載請添加微信 moonhmily1 -