Docker簡介
Docker 是一個開源的應用容器引擎,基於 GO語言並遵從Apache2.0協議開源。
Docker 可以讓開發者打包他們的應用以及依賴包到一個輕量級、可移植的容器中,然後發佈到任何流行的 Linux 機器上,也可以實現虛擬化。
容器是完全使用沙箱機制,相互之間不會有任何接口(類似 iPhone 的 app),更重要的是容器性能開銷極低。
Docker 從 17.03 版本之後分爲 CE(Community Edition: 社區版) 和 EE(Enterprise Edition: 企業版),我們用社區版就可以了。
Docker的應用場景
-
Web 應用的自動化打包和發佈。
-
自動化測試和持續集成、發佈。
-
在服務型環境中部署和調整數據庫或其他的後臺應用。
- 從頭編譯或者擴展現有的OpenShift或Cloud Foundry平臺來搭建自己的PaaS環境。
Docker 的優點
-
1、簡化程序:
Docker 讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後發佈到任何流行的 Linux 機器上,便可以實現虛擬化。Docker改變了虛擬化的方式,使開發者可以直接將自己的成果放入Docker中進行管理。方便快捷已經是 Docker的最大優勢,過去需要用數天乃至數週的 任務,在Docker容器的處理下,只需要數秒就能完成。 -
2、避免選擇恐懼症:
如果你有選擇恐懼症,還是資深患者。Docker 幫你 打包你的糾結!比如 Docker 鏡像;Docker 鏡像中包含了運行環境和配置,所以 Docker 可以簡化部署多種應用實例工作。比如 Web 應用、後臺應用、數據庫應用、大數據應用比如 Hadoop 集羣、消息隊列等等都可以打包成一個鏡像部署。 -
3、節省開支:
一方面,雲計算時代到來,使開發者不必爲了追求效果而配置高額的硬件,Docker 改變了高性能必然高價格的思維定勢。Docker 與雲的結合,讓雲空間得到更充分的利用。不僅解決了硬件管理的問題,也改變了虛擬化的方式。
相關鏈接
Docker 官網:http://www.docker.com
Github Docker 源碼:https://github.com/docker/docker
Docker 架構
Docker 使用客戶端-服務器 (C/S) 架構模式,使用遠程API來管理和創建Docker容器。
Docker 容器通過 Docker 鏡像來創建。
容器與鏡像的關係類似於面向對象編程中的對象與類。
Docker | 面向對象 |
---|---|
容器 | 對象 |
鏡像 | 類 |
Docker 鏡像(Images) |
Docker 鏡像是用於創建 Docker 容器的模板。 |
Docker 容器(Container) |
容器是獨立運行的一個或一組應用。 |
Docker 客戶端(Client) |
Docker 客戶端通過命令行或者其他工具使用 Docker API (https://docs.docker.com/reference/api/docker_remote_api) 與 Docker 的守護進程通信。 |
Docker 主機(Host) |
一個物理或者虛擬的機器用於執行 Docker 守護進程和容器。 |
Docker 倉庫(Registry) |
Docker 倉庫用來保存鏡像,可以理解爲代碼控制中的代碼倉庫。 Docker Hub(https://hub.docker.com) 提供了龐大的鏡像集合供使用。
|
Docker Machine |
Docker Machine是一個簡化Docker安裝的命令行工具,通過一個簡單的命令行即可在相應的平臺上安裝Docker,比如VirtualBox、 Digital Ocean、Microsoft Azure。 |
Ubuntu Docker 安裝
Docker 支持以下的 Ubuntu 版本:
- Ubuntu Precise 12.04 (LTS)
- Ubuntu Trusty 14.04 (LTS)
- Ubuntu Wily 15.10
- Xenial 16.04 (LTS)
- 其他更新的版本……
如果安裝 Docker ce 需要 16.04 及以上版本,安裝步驟可以查看筆記部分:
- Cosmic 18.10
- Bionic 18.04 (LTS)
- Xenial 16.04 (LTS)
前提條件
Docker 要求 Ubuntu 系統的內核版本高於 3.10 ,查看本頁面的前提條件來驗證你的 Ubuntu 版本是否支持 Docker。
通過 uname -r 命令查看你當前的內核版本
使用腳本安裝 Docker
1、獲取最新版本的 Docker 安裝包
sudo wget -qO- https://get.docker.com/ | sh
2、啓動docker 後臺服務
sudo service docker start
3、測試運行hello-world
docker run hello-world
鏡像加速
鑑於國內網絡問題,後續拉取 Docker 鏡像十分緩慢,我們可以需要配置加速器來解決,我使用的是網易的鏡像地址:http://hub-mirror.c.163.com。
新版的 Docker 使用 /etc/docker/daemon.json(Linux) 或者 %programdata%\docker\config\daemon.json(Windows) 來配置 Daemon。
請在該配置文件中加入(沒有該文件的話,請先建一個):
{ "registry-mirrors": ["http://hub-mirror.c.163.com"] }
其他方式安裝流程:
1.更換國內軟件源,推薦中國科技大學的源,穩定速度快(可選)
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak sudo sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list sudo apt update
2.安裝需要的包
sudo apt install apt-transport-https ca-certificates software-properties-common curl
3.添加 GPG 密鑰,並添加 Docker-ce 軟件源,這裏還是以中國科技大學的 Docker-ce 源爲例
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \ $(lsb_release -cs) stable"
4.添加成功後更新軟件包緩存
sudo apt update
5.安裝 Docker-ce
sudo apt install docker-ce
6.設置開機自啓動並啓動 Docker-ce(安裝成功後默認已設置並啓動,可忽略)
sudo systemctl enable docker sudo systemctl start docker
7.測試運行
sudo docker run hello-world
8.添加當前用戶到 docker 用戶組,可以不用 sudo 運行 docker(可選)
sudo groupadd docker sudo usermod -aG docker $USER
9.測試添加用戶組(可選)
docker run hello-world
CentOS Docker 安裝
Docker支持以下的CentOS版本:
- CentOS 7 (64-bit)
- CentOS 6.5 (64-bit) 或更高的版本
前提條件
目前,CentOS 僅發行版本中的內核支持 Docker。
Docker 運行在 CentOS 7 上,要求系統爲64位、系統內核版本爲 3.10 以上。
Docker 運行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系統爲64位、系統內核版本爲 2.6.32-431 或者更高版本。
使用 yum 安裝(CentOS 7下)
Docker 要求 CentOS 系統的內核版本高於 3.10 ,查看本頁面的前提條件來驗證你的CentOS 版本是否支持 Docker 。
通過 uname -r 命令查看你當前的內核版本
uname -r
安裝 Docker
從 2017 年 3 月開始 docker 在原來的基礎上分爲兩個分支版本: Docker CE 和 Docker EE。
Docker CE 即社區免費版,Docker EE 即企業版,強調安全,但需付費使用。
本文介紹 Docker CE 的安裝使用。
移除舊的版本:
$ sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine
安裝一些必要的系統工具:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
添加軟件源信息:
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新 yum 緩存:
sudo yum makecache fast
安裝 Docker-ce:
sudo yum -y install docker-ce
啓動 Docker 後臺服務
sudo systemctl start docker
測試運行 hello-world
docker run hello-world
由於本地沒有hello-world這個鏡像,所以會下載一個hello-world的鏡像,並在容器內運行。
使用腳本安裝 Docker
1、使用 sudo
或 root
權限登錄 Centos。
2、確保 yum 包更新到最新。
$ sudo yum update
3、執行 Docker 安裝腳本。
$ curl -fsSL https://get.docker.com -o get-docker.sh $ sudo sh get-docker.sh
執行這個腳本會添加 docker.repo
源並安裝 Docker。
4、啓動 Docker 進程。
sudo systemctl start docker
5、驗證 docker
是否安裝成功並在容器中執行一個測試的鏡像。
$ sudo docker run hello-world docker ps
到此,Docker 在 CentOS 系統的安裝完成。
鏡像加速
鑑於國內網絡問題,後續拉取 Docker 鏡像十分緩慢,我們可以需要配置加速器來解決,我使用的是網易的鏡像地址:http://hub-mirror.c.163.com。
新版的 Docker 使用 /etc/docker/daemon.json(Linux) 或者 %programdata%\docker\config\daemon.json(Windows) 來配置 Daemon。
請在該配置文件中加入(沒有該文件的話,請先建一個):
{ "registry-mirrors": ["http://hub-mirror.c.163.com"] }
刪除 Docker CE
執行以下命令來刪除 Docker CE:
$ sudo yum remove docker-ce $ sudo rm -rf /var/lib/docker
MacOS Docker 安裝
使用 Homebrew 安裝
macOS 我們可以使用 Homebrew 來安裝 Docker。
Homebrew 的 Cask 已經支持 Docker for Mac,因此可以很方便的使用 Homebrew Cask 來進行安裝:
$ brew cask install docker ==> Creating Caskroom at /usr/local/Caskroom ==> We'll set permissions properly so we won't need sudo in the future Password: # 輸入 macOS 密碼 ==> Satisfying dependencies ==> Downloading https://download.docker.com/mac/stable/21090/Docker.dmg ######################################################################## 100.0% ==> Verifying checksum for Cask docker ==> Installing Cask docker ==> Moving App 'Docker.app' to '/Applications/Docker.app'. 🍺 docker was successfully installed!
在載入 Docker app 後,點擊 Next,可能會詢問你的 macOS 登陸密碼,你輸入即可。之後會彈出一個 Docker 運行的提示窗口,狀態欄上也有有個小鯨魚的圖標()。
手動下載安裝
如果需要手動下載,請點擊以下鏈接下載 Stable 或 Edge 版本的 Docker for Mac。
如同 macOS 其它軟件一樣,安裝也非常簡單,雙擊下載的 .dmg 文件,然後將鯨魚圖標拖拽到 Application 文件夾即可。
從應用中找到 Docker 圖標並點擊運行。可能會詢問 macOS 的登陸密碼,輸入即可。
點擊頂部狀態欄中的鯨魚圖標會彈出操作菜單。
第一次點擊圖標,可能會看到這個安裝成功的界面,點擊 "Got it!" 可以關閉這個窗口。
啓動終端後,通過命令可以檢查安裝後的 Docker 版本。
$ docker --version Docker version 17.09.1-ce, build 19e2cf6
鏡像加速
鑑於國內網絡問題,後續拉取 Docker 鏡像十分緩慢,我們可以需要配置加速器來解決,我使用的是網易的鏡像地址:http://hub-mirror.c.163.com。
在任務欄點擊 Docker for mac 應用圖標 -> Perferences... -> Daemon -> Registry mirrors。在列表中填寫加速器地址即可。修改完成之後,點擊 Apply & Restart 按鈕,Docker 就會重啓並應用配置的鏡像地址了。
之後我們可以通過 docker info 來查看是否配置成功。
$ docker info ... Registry Mirrors: http://hub-mirror.c.163.com Live Restore Enabled: false