原創 | 全網最實在的docker入門教程一

作者:潘吉祥


爲什麼學習docker

近年來微服務架構真的是非常流行了,作爲開發者,即時你沒有做過微服務,但肯定談論過它或者聽別人談論過它。那麼我們的docker和微服務之間究竟有着什麼聯繫呢?

衆所周知,微服務架構強調的是服務拆分,把一個大的系統拆分成多個小的系統,每個小系統提供的服務相互協作組成原來完整的大系統,然後就可以在每個小系統的基礎上進行橫向擴展,也就是集羣,以此提高系統的服務能力,本質上就是分而治之的理念。

關鍵點來了,開發人員負責開發每個小系統,運維人員負責部署擴展,事實上這通常不是件一帆風順的轉交過程,會發生各種意想不到的情況。敲黑板,docker就可以成爲解決這種情況的利器。

docker的實質就是一種容器虛擬化技術,使用docker可以把開發者開發的小系統制成鏡像,丟給運維人員,運維人員只需要在機器上安裝docker就可以運行這個鏡像,如果橫向擴展,可以運行多個鏡像,一切OK

如此一來,開發者只需要關心繫統邏輯的開發,運維只需要管理鏡像的運行!由此看來,使用docker可以大大縮短代碼從開發、測試到部署、上線運行的週期,而且讓代碼具備超強的移植性,只要跑服務的機器上安裝docker即可。此外,docker鼓勵單個容器運行單個應用服務,服務於服務之間就表現爲多個容器的互聯,進行這對於構建微服務架構是非常有利的。

說了這麼多,接下來就來學習這個神奇的碼頭工吧!(docker原義爲碼頭工人,搬運工,這與docker的工作設計理念是一致的)

docker安裝

 

作爲入門教程,安裝必不可少,因爲現在的不少教程是存在些遺漏的,直接用安裝好的docker,以至於初學者在軟件環境上遇到不少難題(說實話,這也是我遇到過的,着實很坑)

這裏我使用的虛擬鏡像是centOS7,注意如果使用centOS6版本的話內核對於docker的一些操作是不完全支持的;軟件是virtueBox,本人以前最先使用的是VMware,但是有時候會出現服務自動掛掉的情況,後來換了virtueBox,就一直在使用這個了,也向大家推薦一下。

以下操作爲本人親自操作,放心實戰!

使用root角色登錄centOS

1.首先建議大家關掉防火牆

systemctl disable firewalld  開機禁止啓動

2.更新yum

yum update

3.安裝需要的軟件包, yum-util 提供yum-config-manager功能,另外兩個是devicemapper驅動依賴

yum install -y yum-utils device-mapper-persistent-data lvm2

4.設置docker軟件安裝包的下載yum源爲阿里雲(注意理解:不是docker下載鏡像的源)

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

5.接下來就可以安裝啦(如果不設置第四步,這裏的下載會很慢,我這裏已經6M/s了)

   yum install docker-ce

6.安裝成功之後我們可以查看當前的docker版本

docker –v

7.設置docker獲取鏡像的加速源,這個很重要,默認的國外源幾乎是無法使用的(通過docker我們可以拉取網上已經有的各種鏡像如redis,nginx等,就像設置mavenpom源)這裏我們選擇了阿里雲的加速地址:

https://bjtzu1jb.mirror.aliyuncs.com

創建docker鏡像加速配置:

vi -p /etc/docker/daemon.json

在文件中添加如下內容

{

    "registry-mirrors":["https://bjtzu1jb.mirror.aliyuncs.com"]

}

保存退出,到此docker的安裝已經完畢了。

docker使用

1.啓動docker

systemctlstart docker

 此時我們可以查看docker的信息

docker info

 

可以看到我們上面的配置已經生效了。

停止、重啓、和開機啓動:

systemctl stop/restart/enable docker

docker常用命令

1.搜索鏡像(下載的鏡像通過一條簡單的命令創建容器就可以直接運行)

docker search 鏡像名

例如我們搜索redis的鏡像:docker search redis

參數:

NAME:鏡像的倉庫名

DESCRIPTION:鏡像描述

STARS:用戶評價,即用戶歡迎程度

OFFICIAL:是否官方

2.下載(拉取)鏡像

docker pull 鏡像名:版本

例如:docker pull nginx  如果不加版本默認會爲我們下載latest版本

3.查看鏡像

docker images

 

可以看到我們剛纔下載的鏡像,這些鏡像都是存儲在Docker宿主機的/var/lib/docker目錄下,參數意義:

REPOSITORY:鏡像名稱

TAG:鏡像標籤

IMAGE ID:鏡像ID

CREATED:鏡像的創建日期(不是獲取該鏡像的日期)

SIZE:鏡像大小

需要注意的是根據鏡像id可以確定唯一一個鏡像,而鏡像名+標籤才能確定唯一一個鏡像。

4.刪除鏡像

docker rmi 鏡像id   (我們通常地使用id來刪除或者運行指定的鏡像。)

 

關於容器(鏡像)的運行、創建我們放在下一篇,關注不迷路哦!

END

【推薦閱讀

Dubbo爆出嚴重漏洞!可導致網站被控制、數據泄露!附解決方案

終於放棄了單調的swagger-ui了,選擇了這款神器—knife4j

又一個吊打百度網盤的開源神器,還是99年妹子開發的

阿里面試官:分別說說微信和淘寶掃碼登錄背後的實現原理?

6 個接私活的網站,你有技術就有錢!

你們心心念唸的 GitHub 客戶端終於來了!

1000 行 MySQL 學習筆記,史上最全珍藏版!

正在家裏愉快辦公,突然被通知公司倒閉,員工:沒想到來得這麼快

感謝閱讀,請掃碼關注

明天見

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章