1:docker介紹一,環境配置的難題二,虛擬機四,Docker是什么?五,Docker的用途1:卸載舊版本(如果安裝過):2:刪除/ var / lib / docker /目錄(如果存在)3.1:通過OS的軟件倉庫安裝4:安裝后相關配置4:驗證是否安裝成功Docker守護進程:Docker守護進程Docker客戶端:Docker客戶端:Docker注冊表:Docker XMLDocker對象:
linux下
1:docker介紹
2013年發布至今,Docker一直廣受矚目,被認為可能會改變軟件行業。
但是,許多人並不清楚Docker到底是什么,要解決什么問題,好處又在哪里?

一,環境配置的難題
軟件開發最大的麻煩事之一,就是環境配置。用戶計算機的環境都不相同,你怎么知道自家的軟件,能在那些機器跑起來?
用戶必須保證兩件事:操作系統的設置,各種庫和組件的安裝。只有它們都正確,軟件才能運行。解釋來說,安裝一個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部署區別:


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:查看一些碼頭工人版本可用

2:安裝指定版本

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

3.2:離線安裝方式
1:通過以下連接下載當前操作系統可用的docker版本
https://download.docker.com/linux/ubuntu/dists/





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守護進程(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文件
