Docker基礎及安裝

  • Docker 簡介
  • Dokcer 功能特性
  • Docker 應用場景
  • 安裝環境
  • 防火牆及安全機制
  • 版本選擇
  • Docker 標準版本安裝
  • Docker CE版本安裝
  • 修改 Docker 運行目錄

 

Dokcer簡介linux


 

  • Docker 是一個開源的應用容器引擎, 讓開發者能夠打包其應用以及依賴包到一個可移植的容器中,而後發佈到任何流行的 Linux 服務器上, 也能夠實現虛擬化, 容器是徹底使用沙箱機制,相互之間不會有任何接口;
  • 完整的 Docker 包括
    • Dokcer Client 客戶端
    • Dokcer Daemon 守護進程
    • Docker Image 鏡像
    • Docker Container 容器

Dokcer 功能特性web


 

  • 隔離環境 ( 系統, 網絡, 文件系統 ) 與應用
    • 經過 cgroup ( 隔離和跟蹤資源的使用 ) & namespace ( 組與組之間的隔離 ) 來實現輕量級的進程隔離;
    • 對應容器中的運行的進程來講, 本身獨佔了一個系統
    • 容器間網絡, 文件 及 其餘資源都相互隔離;
  • 解決依賴與版本問題
    • 傳統模式下, 多個不一樣環境或版本的項目須要部署在不一樣的服務器上, 部署與後期維護管理複雜繁瑣;
    • 使用 Docker, 經過多個不一樣版本或者環境的鏡像, 能夠同時運行在一臺機器上互不干擾, 部署與後期維護簡單方便;
  • 易於分發, 開箱即用
    • 鏡像能夠經過 導入, 導出, 上傳到鏡像倉庫等多種方式進行使用操做;
    • 在啓動了 Docker 的系統上直接使用 docker run 便可啓動鏡像, 無需特別配置;
  • 節點與容器快速擴容
    • 容器擴容簡單方便;
    • 擴容節點只須要安裝並啓動 Docker 便可;
  • 鏡像製做簡單便捷,管理方便.
    • 鏡像的靈魂 Dockerfile;
    • 使用 Dockerfile 進行指令控制, FROM, MAINTAINER, LABEL, ENV, RUN 等;
    • 基於 Linux 命令, 易於理解;
    • 易於定製與修改;

Docker 應用場景docker


  • web 應用的自動化打包和發佈;
  • 自動化測試 和 持續集成 , 發佈;
  • 應用服務, 如 MySQL, Redis 等, 經過 Docker 實現快速部署;
  • k8s 私有云

 Docker 一般用於以下場景:vim

  • 應用場景1: 多版本多種類系統與軟件
    • 須要一個 CentOS 7 / 一個 CentOS 6 / 一個 Ubuntu / MySQL 5.5 / MySQL 5.7 等等進行測試;
    • 各個環境配置好之後, 只使用 幾分鐘, 就須要更換一個版本;
    • 使用傳統的虛擬機解決方案, 一每天的不須要別的工做了;
    • 使用 Docker , 每一個需求只須要一個 docker run
  • 應用場景2: 環境
    • 不少時候存在多個環境版本一致性問題, 如 PHP 運行環境, 涉及到 PHP 版本, PHP擴展的版本等;
    • 環境不一致容器致使諸多問題, 如在測試環境正常的項目,到生產後報錯, 回退到測試環境又不能復現;
    • 使用 Docker 鏡像封裝運行環境, 一次構建, 處處運行;
    • 新增的系統也能快速部署, 實現高效的節點擴容, 保障業務的健康與穩定性;
    • 開發者之間也解決了環境一致性的問題, 且沒必要再常常爲環境問題煩惱,專心實現業務需求;
  • 應用場景3: 分發
    • 項目編譯好以後, 帶上安裝文檔去客戶現場進行安裝及配置;
      • 須要先準備好系統
      • 配置環境;
      • 上傳項目程序;
      • 啓動運行,報錯, 調試;
      • 重複上一步
    • 將運行環境與項目代碼封裝成 docker 鏡像, 到客戶現場後直接在系統中安裝 Docker 並啓動;
      • 導入鏡像開始運行;
    • 甚至經過遠程就能完成部署

 安裝環境centos


 

  • 系統:    CentOS 7.4 minimal
  • 時區:              Asia/Shanghai
  • 分區:
    •   /boot        XFS        500M
    •       swap                      不使用
    •       /                             剩餘所有
  • Docker 有 Windows 和 MacOS 版本, 可是爲了更好的兼容, 咱們選擇 Linux 中運行 Docker;
  •  使用 vMware虛擬機來安裝和運行 CentOS 系統;
  • 其它虛擬軟件 VirtualBox, KVM , XEN 等等也能夠

 防火牆及安全機制安全


 

  •  防火牆:                       建議開啓
  • SeLinux:                      建議開啓
  • 須要特別說明的是: 防火牆和 selinux 是系統與網絡安全的重要保障,咱們不要輕易去禁用或者停用它們,
  • 後續會結合使用
 版本選擇
  •  Docker
    •  17.03 以後版本變爲 Docker CE
  •  Docker CE
    • 社區版, Community Edition
  • Docker EE
    • 企業版, Enterprise Edition
    • 收費版本,強調安全性,提供一些高級特性及商業支持

 Docker 標準版本安裝服務器


 

 

// 使用 yum 安裝 docker
yum -y install docker

// 啓動 docker 並設置爲開機啓動
systemctl start docker
systemctl enable docke

 

 

 Docker CE版本安裝網絡


 

 

// 首先肯定沒有 yum 安裝的 docker, 存在的話先進行 卸載
ps -ef |grep docker && yum -y remove docker

// 可使用 yum 查看安裝信息
yum history                                // 查看全部yum的操做
yum history info N                      // 表示查看yum操做的第N個詳細信息
yum history undo N                    // 表示將第 N 個安裝的全部包都卸載

// 安裝相關依賴包
yum -y install yum-utils device-mapper-persistent-data lvm2

// 兩種方法下載 docker-ce.repo
yum-config-manager --add-repo=http://download.docker.com/linux/centos/docker-ce.repo
 || 
curl http://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo

// 安裝 docker-ce
yum -y install docker-ce

// 啓動 docker 並設置開機啓動
systemctl start docker
systemctl enable docker


// 查看docker版本號
docker version
Client:
 Version:           18.09.6
 API version:       1.39
 Go version:        go1.10.8
 Git commit:        481bc77156
 Built:             Sat May  4 02:34:58 2019
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          18.09.6
  API version:      1.39 (minimum version 1.12)
  Go version:       go1.10.8
  Git commit:       481bc77
  Built:            Sat May  4 02:02:43 2019
  OS/Arch:          linux/amd64
  Experimental:     false    

 

 

修改 Docker 運行目錄app


 

 

 緣由, 有時候服務器以及 雲服務器 根目錄的空間都不是很大, docker 默認佔用的是 /var/lib/docker 目錄, 咱們改爲咱們想要設置的空間夠大的目錄;curl

 

// 建立指定的目錄
mkdir /data/docker

// 修改啓動程序
vim /usr/lib/systemd/system/docker.service
... ...
ExecStart=/usr/bin/dockerd \
    --data-root /data/docker            // 指定須要設置的目錄;
... ...

// reload配置
systemctl daemon-reload


// 重啓docker
systemctl restart docker

// 開啓 selinux 機制的狀況下, 進行如下修改
chcon -R -u system_u /data/docker
chcon -R -t container_var_lib_t /data/docker
chcon -R -t container_share_t /data/docker/overlay2
相關文章
相關標籤/搜索