1. 程式人生 > >docker簡介與安裝配置

docker簡介與安裝配置

  • 簡介

    • docker的官方概念:2013, GO語言開發, Apache 2.0, dotCloud研發公司
      開發人員和系統管理員可以使用docker平臺去開發、部署、執行應用。使用Linux容器來部署應用程式稱為集裝箱化。容器並不是什麼新技術,但可以簡化部署應用。
    • 容器化不斷受捧原因如下:
      Flexible: Even the most complex applications can be containerized.
      Lightweight: Containers leverage and share the host kernel.
      Interchangeable: You can deploy updates and upgrades on-the-fly.
      Portable: You can build locally, deploy to the cloud, and run anywhere.
      Scalable: You can increase and automatically distribute container replicas.
      Stackable: You can stack services vertically and on-the-fly.
      Docker的特性:
      標準化:
      保證一致的執行環境
      彈性伸縮,快速擴容
      方便遷移
      持續整合、持續交付與持續部署
      高效能:不需要進行硬體虛擬以及執行完整的作業系統
      輕量級:快速啟動
      隔離性:程序隔離
    • docker與VM的區別:
      兩者的對比圖:
      docker簡介與安裝配置
  • docker架構元件

    • docker架構
      c/s架構,Docker客戶端與Docker守護程序通訊,Docker守護程序負責構建,執行和分發Docker容器。Docker客戶端和守護程序可以在同一個系統上執行,也可以將Docker客戶端連線到遠端Docker守護程序。Docker客戶端和守護程序使用REST API通過unix套接字或網路介面進行通訊。
      docker簡介與安裝配置

    • The Docker daemon
      docker守護程序(dockerd)監聽docker API請求並管理docker物件,例如:images、container、network、和volumes。dockerd還可以與別的程序通訊管理docker服務。
    • The Docker client
      docker客戶端是我們與Docker互動的主要方法。例如使用docker run命令,客戶端傳送命令到dockerd執行命令,客戶端可以跟多個服務程序通訊。

    • Docker registries
      儲存Docker映象倉庫,公共倉庫有Docker Hub,Docker Cloud ,預設配置從Docker Hub查詢映象,你也可以執行你的私有倉庫。Docker資料中心包含Docker信任倉庫。當使用docker pull或者docker run命令時,從你配置的倉庫拉取需要的映象。當使用docker push命令時,映象推送至你配置的倉庫。

    • IMAGES
      映象是一個只讀模板 ,帶有建立docker容器的說明。一般來說,映象會基於另外的一些基礎映象構建並加上一些額外的自定義功能。比如你可以構建一個基於Ubuntu的映象,然後在這個基礎映象上面安裝一個Apache應用,這樣就可以構建成屬於我們自己的映象了。你也可以建立你自己的映象或者倉庫中別人製作好的映象。構建映象,建立Dockerfile檔案,
      在Dockerfile的每條指令在映象建立一層,當檔案更改並重新構建映象,更改的層被重建。 相比虛擬化技術,這種創作的映象輕量化、更小、更快。

    • CONTAINERS
      容器是映象執行的例項。可以使用Docker API或CLI 去 create, start, stop, move, or delete 一個容器。容器可以連線至一個或者多個網路,連線儲存,甚至基於當前狀態構建新的映象。容器的實質是程序,但與直接在宿主機執行的程序不同,容器進行運行於屬於自己獨立的名稱空間。因此容器可以擁有自己的root檔案系統、自己的網路配置、自己的程序空間,甚至自己的使用者id空間。容器內的程序是執行在一個隔離的環境裡,使用起來,就好像在一個獨立於宿主的系統下操作一樣。這種特性使得容器封裝的應用比直接在宿主機執行更加案例。
  • 安裝配置
    docker版本介紹:
    docker-io:docker早期版本,支援到1.13,在centos 6.x系統上只能使用docker-io
    docker-ce:社群docker發行版本
    docker-ee:docker商業版本
    安裝:阿里docker-ce配置
# step 1: 安裝必要的一些系統工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 新增軟體源資訊
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3: 更新並安裝 Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
# Step 4: 開啟Docker服務
sudo service docker start

# 注意:
# 官方軟體源預設啟用了最新的軟體,您可以通過編輯軟體源的方式獲取各個版本的軟體包。例如官方並沒有將測試版本的軟體源置為可用,你可以通過以下方式開啟。同理可以開啟各種測試版本等。
# vim /etc/yum.repos.d/docker-ce.repo
#   將 [docker-ce-test] 下方的 enabled=0 修改為 enabled=1
#
# 安裝指定版本的Docker-CE:
# Step 1: 查詢Docker-CE的版本:
# yum list docker-ce.x86_64 --showduplicates | sort -r
#   Loading mirror speeds from cached hostfile
#   Loaded plugins: branch, fastestmirror, langpacks
#   docker-ce.x86_64            17.03.1.ce-1.el7.centos            docker-ce-stable
#   docker-ce.x86_64            17.03.1.ce-1.el7.centos            @docker-ce-stable
#   docker-ce.x86_64            17.03.0.ce-1.el7.centos            docker-ce-stable
#   Available Packages
# Step2 : 安裝指定版本的Docker-CE: (VERSION 例如上面的 17.03.0.ce.1-1.el7.centos)
# sudo yum -y install docker-ce-[VERSION]

參考文件:
阿里雲映象:https://yq.aliyun.com/articles/110806
docker官方文件:https://docs.docker.com/engine/docker-overview/#control-groups