1. 程式人生 > 實用技巧 >搭建Docker

搭建Docker

本文介紹在CentOS系統上部署Docker的過程。

背景資訊

本教程適用於熟悉Linux作業系統,剛開始使用阿里雲ECS的開發者。

本教程示例步驟中使用的作業系統版本為CentOS 7.2 64 3.10.0-514.6.2.el7.x86_64。 說明Docker要求64位的系統且核心版本至少為3.10。

主要內容

本文主要介紹以下內容:
  1. 部署Docker
  2. 使用Docker
  3. 製作映象

部署Docker

本節主要介紹手動安裝Docker的操作步驟。

完成以下操作,部署Docker:

  1. 新增yum源。
    yum install epel-release –y
    yum clean all
    yum list
  2. 安裝並執行Docker。
    yum install docker-io –y
    systemctl start docker
  3. 檢查安裝結果。
    docker info
    出現以下說明資訊則表明安裝成功。

使用Docker

Docker有以下基本用法:
  1. 管理Docker守護程序。
    systemctl start docker     #執行Docker守護程序
    systemctl stop docker      #停止Docker守護程序
    systemctl restart docker   #重啟Docker守護程序
  2. 管理映象。本文使用的是來自阿里雲倉庫的Apache映象。
    docker pull registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5
    • 修改標籤。由於阿里雲倉庫映象的映象名稱很長,可以修改映象標籤以便記憶區分。
      docker tag registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5:latest aliweb:v1
    • 檢視已有映象。
      docker images
    • 強制刪除映象。
      docker rmi –f registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5
  3. 管理容器。
    • 進入容器。e1xxxxxxxxxe是執行docker images命令查詢到的ImageId,使用docker run
      命令進入容器。
      docker run –it e1xxxxxxxxxe /bin/bash
    • 退出容器。使用exit命令退出當前容器。
    • run命令加上–d引數可以在後臺執行容器,--name指定容器命名為apache。
      docker run -d --name apache e1xxxxxxxxxe
    • 進入後臺執行的容器。
      docker exec -it apache /bin/bash
    • 將容器做成映象,命令的引數說明:docker commit <容器ID或容器名> [<倉庫名>[:<標籤>]]
      docker commit containerID/containerName repository:tag
    • 為了方便測試和恢復,將源映象執行起來後,再做一個命名簡單的映象做測試。
      docker commit 4c8066cd8c01 apachephp:v1
    • 執行容器並將宿主機的8080埠對映到容器裡去。
      docker run -d -p 8080:80 apachephp:v1

      在瀏覽器輸入宿主機IP加8080埠訪問測試,出現以下內容則說明執行成功。

製作映象

完成以下操作,製作映象:

  1. 準備Dockerfile內容。
    # vim Dockerfile 
    FROM apachephp:v1  #宣告基礎映象來源
    MAINTAINER DTSTACK #宣告映象擁有者
    RUN mkdir /dtstact #RUN後面接容器執行前需要執行的命令,由於Dockerfile檔案不能超過127行,因此當命令較多時建議寫到指令碼中執行
    ENTRYPOINT ping www.aliyun.com #開機啟動命令,此處最後一個命令需要是可在前臺持續執行的命令,否則容器後臺執行時會因為命令執行完而退出。
  2. 構建映象。
    docker build -t webcentos:v1 .   # . 是Dockerfile檔案的路徑,不能忽略
    docker images                    #檢視是否建立成功
    docker run –d webcentos:v1       #後臺執行容器
    docker ps                        #檢視當前執行中的容器
    docker ps –a                     #檢視所有容器,包括未執行中的
    docker logs CONTAINER ID/IMAGE   #如未檢視到剛才執行的容器,則用容器id或者名字檢視啟動日誌排錯
    docker commit fb2844b6c070 dtstackweb:v1 #commit 後接容器id 和構建新映象的名稱和版本號。
    docker images                    #列出本地(已下載的和本地建立的)映象
    docker push                      #將映象推送至遠端倉庫,預設為 Docker Hub
  3. 將映象推送到registry。

    其中ImageId和映象版本號請您根據自己的映象資訊進行填寫。

    docker login --username=dtstack_plus registry.cn-shanghai.aliyuncs.com #執行後輸入映象倉庫密碼
    docker tag [ImageId] registry.cn-shanghai.aliyuncs.com/dtstack123/test:[映象版本號]
    docker push registry.cn-shanghai.aliyuncs.com/dtstack123/test:[映象版本號]

    在映象倉庫能檢視到映象版本資訊則說明推送成功。