經(jīng)過前面那么多期的鋪墊,今天我們終于可以來安裝使用我么的docker了。這是一個非常好用的工具,我們的NAS服務(wù)百分之九十都會部署在docker上運行。
有了docker以后,你不再需要小心翼翼地擔心把系統(tǒng)配置搞亂無法恢復(fù),在這里你可以通過幾個簡單地命令就可以將相關(guān)服務(wù)重新部署回來。
就這樣,請擁有,并享受
Docker簡介
如你并不想了解Docker是什么,只需要能簡單的用就行地話你可以跳過本小節(jié),直接進入Docker的安裝部分。
關(guān)于Docker的詳細信息我們可以去Docker的官網(wǎng)查看,點擊這里可以跳轉(zhuǎn)。
Docker 是一個開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個可移植的鏡像中,然后發(fā)布到任何流行的 Linux或Windows 機器上,也可以實現(xiàn)虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口。
這是百科對Docker的解釋,看到這里是不是很懵,不要緊,我來為你解釋。
Docker是一個容器引擎,容器就是用來放東西的,Docker容器里面放的就是操作系統(tǒng),一個容器對應(yīng)一個操作系統(tǒng),你可以把Docker想象成虛擬機,但是和虛擬機不同的是,得益于Docker的機制,在Docker中運行虛擬機往往不需要很多內(nèi)存以及處理器資源,相比VMWare動則幾個G的大小,在Docker中運行一個虛擬機僅需幾十兆到幾百兆的空間,你可以運行幾十甚至上百個虛擬機在Docker中,這是VMWare所不能比的。
在開始搭建之前,你需要了解docker的幾個基本概念
鏡像:鏡像就是實際就類似于一個安裝鏡像,比如你需要安裝Windows,那么你需要去微軟的官網(wǎng)下載windows的鏡像,你才能進行安裝。
DockerHub:DockerHub就是一個存放以及分享鏡像的地方,你可以將你自己制作的鏡像上傳到DockerHub與別人分享,你也可以到DockerHub下載別人分享的鏡像進行使用。
容器:當你啟動了一個鏡像之后,對應(yīng)著就會有一個容器生成,容器是用來存儲鏡像運行時的狀態(tài)的,這就相當于你通過鏡像創(chuàng)建了一個虛擬機,那么創(chuàng)建完成后你的虛擬機就跑在了容器中。鏡像是靜態(tài)的,而容器是動態(tài)的。
有了對Docker的一個簡單了解后,我們就可以進行接下來的操作了。
Docker安裝與卸載
Docker安裝
在apt的官方源中已經(jīng)加入了Docker,但是這往往不是最新的版本,要安裝最新的版本,我們需要進行一些簡單的配置。
Docker提供了Enterprise以及Community兩個版本可供安裝,我們只需要安裝Community版即可,這是一個社區(qū)版,可以免費使用。
如果你以及安裝了一個老的版本的Docker,那么你需要先卸載它,老版本的Docker軟件名字為docker、docker.io或者是docker-engine,你可以通過下面語句卸載它。
sudo apt-get remove docker docker-engine docker.io containerd runc
- 首先更新
apt包的索引:
sudo apt update
- 安裝軟件包以允許
apt通過HTTPS使用存儲庫:
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
- 添加Docker的官方GPG密鑰:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88通過搜索指紋的后8個字符,驗證您現(xiàn)在是否擁有帶有指紋的密鑰 。
sudo apt-key fingerprint 0EBFCD88
執(zhí)行后出現(xiàn)以下內(nèi)容即添加成功
pub rsa4096 2017-02-22 [SCEA]
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid [ unknown] Docker Release (CE deb) <docker@docker.com>
sub rsa4096 2017-02-22 [S]
- 使用以下命令來設(shè)置穩(wěn)定的存儲庫
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
- 更新
apt包索引。
sudo apt-get update
- 安裝最新版本的Docker Engine-Community和containerd
sudo apt install docker-ce docker-ce-cli containerd.io
- 驗證安裝是否成功
docker --version
如果出現(xiàn)如下的版本號,即為安裝成功
Docker version 19.03.5, build 633a0ea838
Docker卸載
- 卸載Docker Engine-社區(qū)軟件包:
sudo apt purge docker-ce
- 主機上的映像,容器,卷或自定義配置文件不會自動刪除。要刪除所有圖像,容器和卷:
sudo rm -rf /var/lib/docker
Docker配置及基本使用
在完成docker的安裝后,我們就可以開始使用docker來部署服務(wù)了,在此之前,我們先來學(xué)習一下docker的基本使用方法。
在docker中你首先需要有鏡像文件(images),你才可以通過鏡像來部署相關(guān)服務(wù),鏡像的話你可以到DockerHub獲取,也可以自己寫dockerfile來構(gòu)建鏡像(本專欄不涉及)。
Docker配置
- 修改鏡像源
docker服務(wù)器在國外,在國內(nèi)訪問速度很慢,我們可以通過修改鏡像源為阿里云來啟用加速
首先到阿里云鏡像服務(wù)中心,你需要登錄阿里云。

然后進入管理控制臺,然后選擇鏡像中心 -> 鏡像加速器

如果你沒有的話會提示你進行申請,完成后會看到上圖的信息,會提示你進行配置,配置的話你只需要將配置鏡像加速器下方的代碼復(fù)制到終端執(zhí)行即可(如果你分不清命令的話一次性全部復(fù)制完,粘貼后按下回車鍵)。
這樣當以后下載鏡像的時候就會快很多。
Docker基本使用
- 獲取鏡像文件
首先到docker官網(wǎng):點擊這里進行注冊注冊完成后登錄
Docker官網(wǎng)
然后點擊左上角的搜索框輸入需要搜索的東西可進行搜索,這里以搜索Ubuntu為例
鏡像搜索
完成搜索后我們可以看到列出了很多的項目,我們根據(jù)自己的需要點開一個鏡像
鏡像頁面
在這里我們我們可以看到相關(guān)的鏡像描述以及基本的信息,右邊有一欄黑色的代碼框,通過輸入代碼框的命令我們即可獲取相關(guān)的鏡像。
在這里我們輸入一下命令來獲取鏡像
docker pull ubuntu

下載完成后我們可以通過以下命令查看本地的鏡像
docker images

REPOSITORY:鏡像名
TAG:標簽:latest為最新版本
IMAGE ID:鏡像ID,鏡像唯一標識符
CREATED:構(gòu)建時間
SIZE:鏡像大小
- 構(gòu)建容器
在有了本地鏡像之后,我們就可以來構(gòu)建容器了,我們先通過一個簡單的例子來講解
docker run -d \
-p 9999:8096 \
--name=ubuntu \
-v /mnt/sda:/mnt \
--restart=always \
--device /dev/dri/renderD128:/dev/dri/renderD128 \
ubuntu
出現(xiàn)下圖所示內(nèi)容即創(chuàng)建成功

上面命令你也可以將\符去掉寫成一行,這里來講解一下各個參數(shù)的作用
-d:表示運行容器后臺運行
-p:端口映射,格式為主機端口:容器內(nèi)端口,即通過主機的該端口既可以訪問到容器內(nèi)的端口內(nèi)容
--name:命名容器,默認生成的容器名字是隨機的,可以通過該命令指定
-v:綁定文件卷,格式為主機目錄:容器內(nèi)目錄,在主機上的某一目錄映射到容器內(nèi),即通過容器內(nèi)指定的目錄即可訪問到主機對應(yīng)的目錄中的文件。
--restart:開機重啟,always為開機重啟
--device:綁定硬件到容器內(nèi)部,在后面章節(jié)做詳細講解。
其他相關(guān)命令
創(chuàng)建成功后我們可以通過如下命令查看正在運行的容器:
docker ps
通過一下命令查看所用容器,包括未運行的容器:
docker ps -a
停止容器:
docker stop 容器名/容器id
這里容器id只需要輸入前幾位就可以,只要能和其他的區(qū)別開來就行
啟動容器:
docker start 容器名/容器id
刪除容器(刪除前需要先停止容器):
docker rm 容器名/容器id
刪除鏡像(刪除前需先刪除用該鏡像構(gòu)建的容器)
docker rmi 鏡像id
命令總結(jié)
-
docker pull:拉取鏡像 -
docker images:查看本地鏡像 -
docker run:通過鏡像構(gòu)建容器 -
docker ps:查看正在運行的容器 -
docker ps -a:查看所有容器 -
docker start:啟動容器 -
docker stop:停止容器運行 -
docker rm:查出容器 -
docker rmi:刪除鏡像
寫在后面
容器相對來說使用還是比較簡單的,通過簡單的學(xué)習就可以使用。如果你對其還不是很熟悉,你應(yīng)該多去實際使用上面的命令,在這里你不用擔心出錯,大不了使用docker rm刪除了再來一次,而不用擔心物理機環(huán)境遭到破壞。


