虛擬化技術
把真實物理機子中剩余的資源重新整合,創建出來一臺新的虛擬的計算機提供給開發者使用,
優點:
虛擬化使用軟體的方法重新定義劃分IT資源,可以實作IT資源的動態分配、靈活調度、跨域共享,提高IT資源利用率,降低成本,加快部署,極大增強系統整體安全性和可靠性,使IT資源能夠真正成為社會基礎設施,服務于各行各業中靈活多變的應用需求,
虛擬化技術有3種不同的實作方案:
1. 硬體虛擬化
需要購買虛擬化設備
2. 磁區虛擬化
一臺電腦下可以實際安裝多個作業系統,開機的時候,就固定分配好了記憶體,
3. 虛擬機技術[應用虛擬化]
通過在作業系統中安裝軟體來實作,例如:VMware,virtualbox,在vm中創建虛擬機,搭建作業系統,在虛擬機運行的時候,由vm動態向真實電腦申請分配硬體資源[cpu,記憶體,顯卡網路等等],
4. 準虛擬機技術
是上面第2和第3中的混合產物,不需要安裝vm也不需要磁區,而是由作業系統本身提供出來了一個虛擬層來實作的,
例如;xven或者window10的Hyperv都是這種實作,
因為上面不管哪一種虛擬化技術,都會出現一個問題就是為了讓虛擬出來的作業系統能正常運作起來都需要實實在在向真實物理機申請對應的資源,而且為了能讓虛擬出來的作業系統能正常運作,物理機要分配各種的硬體資源,這樣很大程度上存在資源的消耗,降低物理機的性能,而這個程序用戶完全有可能僅僅只是了為運行某幾個軟體而已,所以為了更好的提升用戶的體驗,提升系統的性能,減低消耗,所以出現了一種新的虛擬化技術,
容器化技術!!!
比較流行的容器化技術有:docker和pod
docker的使用提供了2種方式:
1. 終端命令[通過終端命令逐步操作]
2. dockerFile[通過腳本對docker進行封裝和操作]
Docker 命令
通用命令
查看docker 當前版本
sudo docker version
# 啟動docker
sudo service docker start
# 停止docker
sudo service docker stop
# 重啟docker
sudo service docker restart
鏡像操作[image]
列出所有鏡像
sudo docker image ls
# 上面的命令時省略了 --all
sudo docker image ls --all
拉取鏡像
如果不指定版本號,默認拉取最新版本的鏡像
sudo docker image pull <鏡像名稱:版本號>
洗掉鏡像
洗掉的時候,必須注意是否有容器在運行當前鏡像檔案,如果在使用,則需要先洗掉容器,才能洗掉鏡像
sudo docker image rm <鏡像名稱/鏡像ID>
洗掉的鏡像如果被容器提前使用了,會報錯誤
把docker中的鏡像打包成檔案
用于分享發送給他人,或備份
sudo docker save -o <檔案名.tar.gz> <鏡像名:版本號>
把鏡像檔案加載到docker中
docker load -i <檔案名.tar>
容器操作[container]
創建容器
必須先有鏡像,才能運行創建容器,需要指定使用的鏡像名,并且設定創建容器以后,執行對應的第一條命令
docker run <引數選項> <鏡像名稱:鏡像版本> <容器啟動后的第一個命令>
例如:使用"hello-world"鏡像,創建一個容器,但沒有進行任何操作
docker run hello-world
例如:使用ubuntu鏡像,創建一個名為ubuntu1
docker pull ubuntu:18.04
docker run -it --name=ubuntu1 ubuntu:18.04 bash
注意:必須啟動的時候,讓容器運行bash決議器,才能在接下來的操作讓容器不會立刻關閉,而且也能夠讓我們可以輸入linux終端命令, 如果我們一般創建一個容器,選項都是: -itd
docker run的選項
-t 表示容器啟動后會進入其命令列終端
-i 表示以“互動模式”運行容器
--name 表示設定容器的名稱
例如,使用ubuntu鏡像,創建一個名為ubuntu2,并且在后臺運行的容器像
docker run -itd --name=ubuntu2 ubuntu<:版本> ubuntu
-d 創建一個守護式容器在后臺運行(這樣創建容器后不會自動登錄容器,如果只加-i -t 兩個引數,創建后就會自動進去容器)
列出所有容器
docker container ls # 所有正在啟動運行的容器
docker container ls --all # 所有容器[不管是否在啟動運行中]
啟動容器【可以同時啟動多個容器,容器之間使用空格隔開】
# 啟動一個容器
docker container start <容器名稱/容器ID>
# 啟動多個容器
docker container start <容器名稱/容器ID> <容器名稱/容器ID> <容器名稱/容器ID>
停止容器
docker container stop <容器名稱/容器ID>
# 停止多個容器
docker container stop <容器名稱/容器ID> <容器名稱/容器ID>
殺死容器
在容器無法停止的時使用,注意不能濫用,這種操作有可能被導致容器里面運行的檔案丟失!!!
docker container kill <容器名稱/容器ID>
# 殺死多個容器
docker container kill <容器名稱/容器ID> <容器名稱/容器ID>
進入容器
要進入容器,必須當前容器是啟動狀態的,這個命令不需要加上-d
docker container exec -it <容器名稱/容器ID> <第一個命令>
洗掉容器
docker container rm <容器名稱/容器ID>
# 洗掉多個容器
docker container rm <容器名稱/容器ID> <容器名稱/容器ID>
把容器保存成鏡像
docker commit <容器名稱/容器ID> <新鏡像名:鏡像自定義版本>
擴展
使用docker命令需要管理員權限,如果希望每次輸入docker相關命令時,不用sudo,可通過以下命令進行設定
sudo usermod -a -G docker $USER
sudo service docker restart
newgrp - docker
官方提供的ubuntu系統鏡像,工具命令很少,如希望內部安裝ping、ifconfig網卡或者vim等工具,可以通過以下命令進行設定[需要聯網,而且耗時]
apt-get update
apt install net-tools # ifconfig
apt install iputils-ping # ping
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/195935.html
標籤:Python
