window10下安裝Docker


 

linux下

1:docker介紹

2013年發布至今,Docker一直廣受矚目,被認為可能會改變軟件行業。

但是,許多人並不清楚Docker到底是什么,要解決什么問題,好處又在哪里?

img

一,環境配置的難題

軟件開發最大的麻煩事之一,就是環境配置。用戶計算機的環境都不相同,你怎么知道自家的軟件,能在那些機器跑起來?

用戶必須保證兩件事:操作系統的設置,各種庫和組件的安裝。只有它們都正確,軟件才能運行。解釋來說,安裝一個Python應用程序,計算機必須有Python引擎,還必須有各種依賴,可能還要配置環境變量。

開發者常常會說:“它在我的機器可以跑了”(在我的機器上工作),言下之意就是,其他機器很可能跑不了。

很多人想到,能不能從根本上解決問題,軟件可以帶環境安裝?而不是安裝的時候,把原始環境一模一樣地復制過來。

二,虛擬機

虛擬機(virtual machine)就是帶環境安裝的一種解決方案。它可以在一種操作系統里面運行另一種操作系統,例如在Windows系統內部運行Linux系統。應用程序無需感知,因為虛擬機看上去跟真實系統一模一樣,而對於過多系統而言,虛擬機就是一個普通文件,不需要了就刪掉了,對其他部分毫無影響。

雖然用戶可以通過虛擬機還原軟件的原始環境。但是,這個方案有幾個缺點。

(1)資源占用多

它運行的時候,其他程序就不能使用這些資源了。哪怕虛擬機里面的應用程序,真正使用的內存只有1MB,虛擬機仍然需要幾百MB的內存才能運行。

(2)冗余步驟多

虛擬機是完整的操作系統,一些系統等級的操作步驟,經常無法跳過,某些用戶登錄。

(3)啟動慢

啟動操作系統需要多久,啟動虛擬機就需要多久。可能要等幾分鍾,應用程序才能真正運行。

三,Linux容器

由於虛擬機存在這些缺陷,Linux發展出了另一種虛擬化技術:Linux容器(Linux Containers,簡稱為LXC)。

Linux容器不是模擬一個完整的操作系統,還是對進程進行隔離。或者說,在正常進程的外面套了一個保護層。對於容器里面的進程來說,它接觸到的各種資源都是虛擬的,從而實現與脆弱系統的隔離。

由於容器是進展等級的,大約虛擬機有很多優勢。

(1)啟動快

因此,啟動容器相當於啟動本機的一個進程,而不是啟動一個操作系統,速度就快很多。

(2)資源占用少

容器只占用需要的資源,不占用那些沒有用到的資源;虛擬機由於是完整的操作系統,因此要占用所有資源。另外,多個容器可以共享資源,虛擬機都是獨享資源。

(3)體積小

容器只要包含用到到的組件即可,而虛擬機是整個操作系統的打包,那么容器文件比虛擬機文件要小很多。

總之,容器有點像輕量級的虛擬機,能夠提供虛擬化的環境,但是成本增加小幅度。

四,Docker是什么?

Docker屬於Linux容器的一種封裝,提供簡單易用的容器使用接口。它是當前最流行的Linux容器解決方案。

Docker將應用程序與該程序的依賴,打包在一個文件里面。運行這個文件,就會生成一個虛擬容器。程序在這個虛擬容器里運行,就好像在真實的物理機上運行一樣。有了Docker,就不用擔心環境問題。

總體而言,Docker的接口相當簡單,用戶可以方便地創建和使用容器,把自己的應用放入容器。容器還可以進行版本管理,復制,共享,修改,就像管理普通的代碼一樣。

五,Docker的用途

Docker的主要用途,目前有三大類。

(1)提供一次性的環境。例如,本地測試他人的軟件,持續集成的時候提供單元測試和內置的環境。

(2)提供彈性的雲服務。因為Docker容器可以隨開隨關,很適合動態擴容和縮容。

(3)組建微服務架構。通過多個容器,一台機器可以運行多個服務,因此在本機就可以模擬出微服務架構。

Docker部署與VM部署區別:

imgimg

2:安裝docker官方安裝文檔地址:https : //docs.docker.com/engine/install/ubuntu/

Linux ubuntu18.04:

1:卸載舊版本(如果安裝過):

$ sudo apt-get刪除docker docker-engine docker.io容器化runc

2:刪除/ var / lib / docker /目錄(如果存在)
3.1:通過OS的軟件倉庫安裝

1:sudo apt-get update#更新下軟件源信息

2:sudo apt-get install \#安裝必要的軟件,讓apt可以通過https安裝docker

apt-transport-https \

ca證書\

卷曲

gnupg-agent \

常用軟件屬性

3: curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add-#添加Docker官方的密鑰

4: sudo add-apt-repository \#添加apt倉庫地址,安裝當前操作系統版本可用的docker相關軟件

“ deb [arch = amd64] https://download.docker.com/linux/ubuntu \

$(lsb_release -cs)\

穩定”

5:

sudo apt-get update#更新源

sudo apt-get install docker-ce docker-ce-cli containerd.io#安裝docker軟件

額外信息:

安裝指定版本docker相關軟件:

1:查看一些碼頭工人版本可用

img

2:安裝指定版本

img

<VERSION_STRING>指的是執行查看可用版本命令時,第二列里的值

img

3.2:離線安裝方式

1:通過以下連接下載當前操作系統可用的docker版本

https://download.docker.com/linux/ubuntu/dists/

img

img

img

img

img

2:安裝.deb包

路徑表示下載地址,xxxx代表我們下載的串聯

須藤dpkg -i /path/xxxxx.deb

4:安裝后相關配置

sudo groupadd docker#只要不報錯就可以,可能會提示用戶組已經存在,不用理會

sudo usermod -aG泊塢窗$ USER

4:驗證是否安裝成功

docker run hello-world#輸出hello world表示成功

3:Docker架構:

Docker架構圖

名字解釋:

Docker守護進程:Docker守護進程

Docker守護進程(dockerd)偵聽Docker API請求並管理Docker對象,如圖像,容器,網絡和卷。守護進程還可以與其他守護進程通信來管理Docker服務。

Docker客戶端:Docker客戶端:

Docker客戶端(Docker)是Docker用戶與Docker daemon交互的主要方式。

當您使用docker run之類的命令時,將這些命令發送給dockerd,dockerd執行這些命令。

docker命令使用dockerAPI。Docker客戶端可以與多個守護進程通信

Docker注冊表:Docker XML

存儲Docker映像的地方,Docker中心是一個公共的注冊地,任何人都可以通過docker pull

Docker對象:

圖片:總計:

一些列文件的封裝,包括我們自己的寫的程序和依賴程序,也是一個模板文件,可以基於這個並運行多個程序實例(容器)

完全可以繼承,至少基於一個ubuntu擴展,我們可以在里面安裝Nginx,python等軟件形成新的替代

容器:容器:

基於總體運行時生成的實例,也就是程序運行時

3:常用命令介紹:

泊塢窗運行

docker啟動/停止/重啟

碼頭工人

碼頭工人rmi

碼頭工人

碼頭工人ps

碼頭工人圖像

碼頭工人提交

碼頭工人搜索

4:基於docker安裝mysql

碼頭工人運行-d --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD = 123456 mysql

5:安裝redis

docker運行-itd --name redis-test -p 6379:6379 redis

6:Dockerfile文件

7:制作自己的Docker實質上


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM