docker 入門到實戰 1.初識 docker

it書童發表於2019-09-06

什麼是docker

你到市場上買了一堆菜和肉:鹹魚,雞蛋,青菜,蘿蔔,熟食,水果等。這些菜都要裝在一個冰箱裡,不同的菜保質期不一樣,味道也不一樣,如果你將鹹魚和水果放在一起,水果就成了黑暗料理了。如果將雞蛋隨便丟,那很可能只要一開冰箱找食材,就會碰碎幾個雞蛋。聰明如你,肯定會將這些食材分門別類用不同的容器隔離存放。讓一切都井然有序。

類似的,如果我們想在一臺電腦上搭建各種開發環境:lnmp環境,java環境,nodejs,redis叢集,python開發環境。顯然,這些多的開發環境,如果集中在一臺機器上構建,會讓系統顯得複雜,可能還會出現各種版本或依賴之間的不相容。如果能將這些開發環境都獨立開來,各個環境互相獨立隔離,但又能互相通訊互動,相當於每個環境都是一個容器,這些容器可以獨立提供服務,也能通訊互動。

docker就是這樣的容器技術。

用官方術語描述docker: Docker是基於Go語言實現的開源容器專案,有效地將由單個作業系統管理的資源劃分到孤立的組中,以更好地在孤立的組之間平衡有衝突的資源使用需求。

通俗地理解:docker能讓你在一臺物理機上構建出很多個輕量極的開發環境。

為什麼要用docker

傳統的虛擬機器也能實現環境的隔離,但虛擬機器過於笨重,啟動也慢,消耗的資源多。如果一臺普通的個人電腦同時執行5個虛擬機器例項,估計記憶體和CPU就扛不住了。

而docker不一樣,docker很輕量級,對系統資源的需求很少。

  • docker容器的啟動和停止可以在秒級實現,個人普通電腦同時執行上百個docker容器也沒問題(在IBM伺服器上可以同時實現執行10k量級的容器例項)

  • docker通過類似Git設計理念的操作來方便使用者獲取、分發和更新應用映象。使用者可以很方便地獲取全球開發者共享的映象

  • 通過Dockfile支援靈活的自動化建立和部署機器,使流程標準化,很方便移植

如何安裝docker

官方文件 有詳細的安裝說明,本文以 macos 和 centos7 為例進行演示

macos

macos 和 windows 都有相應的桌面版安裝包,下載後即可一鍵安裝

macos 安裝包

image-20190906223832152

centos

官方文件

詳細操作:

$ sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

$ sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

$ sudo yum install docker-ce -y

$ sudo systemctl start docker # 啟動docker

更換docker安裝源

預設的docker安裝源很慢,建議換成國內源,以阿里雲的源為例:

阿里雲docker映象加速器

需要先註冊阿里雲賬號

image-20190906224415565

macos

image-20190906224520248

centos

$ sudo mkdir -p /etc/docker
$ sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["你的映象地址"]
}
EOF
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker

第一個docker映象

檢視版本資訊

$ docker --version
Docker version 19.03.1, build 74b1e89

按照慣例,第一個程式以 hello world 開始,執行以下命令即可執行一個輸出 hello world 的容器

$ docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
1b930d010525: Pull complete
Digest: sha256:451ce787d12369c5df2a32c85e5a03d52cbcef6eb3586dd03075f3034f10adcd
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

以上指令表示你從docker映象拉到了一個名為'hello world'映象並執行成功。到此表示你的docker已經安裝成功且正常執行

關於什麼是docker的映象,請關注我的後續更新

相關文章