1. 程式人生 > >CentOS7.4 部署 Docker

CentOS7.4 部署 Docker

Docker 是 PaaS 提供商 dotCloud 開源的一個基於 LXC 的高階容器引擎,自 2013 年以來非常火熱,無論是從 GitHub 上的程式碼活躍度還是在從各大廠商如 RedHat、Google、Microsoft 等的支援上。

在商業領域中,創新的過程意味著是不斷試錯,而云時代的到來則為應用的建立和迭代效率帶來進一步的提升,而 cloud 時代通常是採用標準配置的 x86 硬體來降低成本,計算層通過虛擬化的手段來滿足使用者按需取用的需求已保障可靠性和隔離性。

但是在 Docker 看來,無論是 KVM 還是 VMware 虛擬化都太重,存在資源浪費,因為使用者在部署應用的時候需要的是所有相關的依賴環境而非作業系統。Docker 的出現給開發者和運維管理人員帶來了新的思路,使之能夠以打包映象的方式快速準備交付一套基礎環境或上線一套程式碼。

Docker 的優勢

簡單而言,Docker 作為一個開源的應用容器引擎,可以為任何應用建立一個輕量級、可移植的容器,使之可以執行在任何安裝有 Docker 的平臺上。核心優勢主要是以下幾點:

  1. 更快的交付和部署
    開發和運維人員可以使用一個標準的景象來準備依賴環境和部署程式碼,而後將其重新進行打包成映象,基於這個映象 Docker 可以快速建立容器、迭代應用程式,節約大量的部署、除錯和開發的時間。

  2. 更高效的虛擬化
    Docker 容器的執行不需要額外的 Hypervisor 支援,它基於核心級的虛擬化更加輕量級,因此可以實現更高的效能和帶來效率的提升。

  3. 更輕鬆的遷移和擴充套件
    Docker 容器幾乎可以執行在任意的平臺上,包括物理機、虛擬機器、公有云、私有云等,特別是當前幾乎所有的公有云平臺都支援了容器功能,使用者可以輕易實現在不同的平臺上進行業務的快速遷移。

  4. 更簡單的管理
    使用 Docker 打包的映象在實際的使用過程中可以實現更快的部署和最小的修改,所有的更新都可以以增量的方式進行。而自動化部署也因為不再需要逐一準備基礎環境而變得更加輕鬆。

部署 Docker

Docker 的測試環境部署對於資源的要求比較簡單,我們可以在一臺利舊的物理伺服器上部署,也可以在虛擬化的虛擬機器中部署,因為這裡是搭建一個測試環境,我選擇最廉價和快捷的方式,在滴滴雲主機 DC2 上開了一個按時長計費的 Linux7.4 虛擬機器,快速完成安裝部署的 demo。

  1. 安裝 yum 相關工具包
yum install -y yum-utils device-mapper-persistent-data lvm2
  1. 新增 Docker 下載源
新增docker官方源:
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum makecache fast
  1. 安裝 Docker 社群版
yum -y install docker-ce
  1. 更改映象源為國內站點的映象源,並制定 Docker 資料儲存目錄
mkdir -p /data/docker
mkdir -p /etc/docker
vim /etc/docker/daemon.json

注:Docker 安裝好後預設沒有此檔案,需要手動建立並指定 Docker 儲存目錄。

{
  "registry-mirrors": ["https://registry.docker-cn.com"], "graph": "/data/docker"
}
  1. 啟動 Docker,並加入開機自動啟動
systemctl start docker
systemctl enable docker

測試 Docker

  1. 下載 hello-world 映象
docker pull hello-world

下載完成後可以使用命令命令

docker images

檢視到已經下載完成的“hello-world”映象。

  1. 執行 hello-world 映象
docker run hello-world

執行成功後可以看到以下文字被列印到螢幕上

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

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash
 
Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/ 

至此,Docker 在滴滴雲 DC2-Centos7.4 上的部署已經成功完成,隨後將可以通過在映象源中下載或者自己打包來獲得更多的映象以滿足業務使用。