docker 入門1 - 方向 【翻譯】

開始,第 1 部分:方向和設置

歡迎!咱們很高興您想學習 Docker。Docker 入門教程將教您如何:docker

  1. 設置 Docker 環境(當前步驟)
  2. 生成映像並將其做爲一個容器運行
  3. 縮放應用以運行多個容器
  4. 在羣集中分發應用
  5. 經過添加後端數據庫來堆棧服務
  6. 將應用部署到生產

Docker 概念

Docker 是開發人員和系統管理員使用容器開發、部署和運行應用程序的平臺。使用 Linux 容器來部署應用程序稱爲容器化(containerization)。容器並非新概念,但經過容器輕鬆部署應用程序則是最近才實現的。 數據庫

容器化正在變得愈來愈流行,由於容器有如下特色:後端

  • Flexible 靈活性:即便是最複雜的應用也能夠放入容器。app

  • Lightweight 輕量性:容器利用並共享主機內核。分佈式

  • Interchangeable 通用性:能夠即時部署更新和升級。學習

  • Portable 便攜性:能夠構建本地應用,部署到雲端,並在任何地方運行。測試

  • Scalable 可擴展:能夠增長和自動分發容器副本。優化

  • Stackable 可堆疊:能夠即時縱向堆疊服務。ui

鏡像和容器

經過運行鏡像啓動容器。鏡像是一個可執行包,它包括運行應用程序所需的一切內容 -- 代碼、運行時、庫、環境變量和配置文件。spa

容器是鏡像的運行時實例,執行時鏡像在內存中變爲何(即具備狀態的鏡像或用戶進程)。您能夠看到運行容器的列表,該列表包含命令 docker ps,就像 Linux 中同樣。

容器和虛擬機

容器在 Linux 上本機運行,並與其餘容器共享主機的內核。它運行一個離散進程,不會佔用比任何其餘可執行文件更多的內存,所以它很輕量。

相比之下,虛擬機 (VM) 運行一個成熟的"來賓"操做系統,經過虛擬機管理程序虛擬訪問主機資源。一般,VM 提供的環境比大多數應用程序須要的資源更多。

準備 Docker 環境

在受支持的平臺上安裝維護的 Docker 社區版 (CE) 或企業版 (EE)。

對於完整的Kubernetes集成

  • Docker 桌面上的 Kubernetes 適用於 Mac,提供 17.12 Edge (mac45) 或 17.12 Stable (mac46) 及更高版本。
  • 適用於 Windows 的 Docker 桌面上的 Kubernetes 在 18.06.0 CE (win70) 和更高版本以及Edge通道中可用。

測試 Docker 版本

  1. 運行 docker --version,並確保您具備支持的 Docker 版本:

    docker --version
    
    Docker version 17.12.0-ce, build c97c6d6

     

  2. 運行 Docker info(或 docker version 不帶 --),查看有關 Docker 安裝的更多詳細信息:

    docker info
    
    Containers: 0 Running: 0 Paused: 0 Stopped: 0 Images: 0 Server Version: 17.12.0-ce Storage Driver: overlay2 ...

     

爲了不權限錯誤(和使用 sudo),請將用戶添加到 docker 組。

測試 Docker 安裝

  1. 經過運行簡單的 Docker 鏡像 hello-world 來測試您的安裝是否正常工做:

    docker run hello-world
    
    Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world ca4f61b1923c: Pull complete Digest: sha256:ca0eeb6fb05351dfc8759c20733c91def84cb8007aa89a5bf606bc8b315b9fc7 Status: Downloaded newer image for hello-world:latest
    
    Hello from Docker! This message shows that your installation appears to be working correctly. ...

     

  2. 列出下載到您的計算機的 hello - world 鏡像:

    docker image ls

     

  3. 列出容器 hello-world(由對應鏡像產生),它在顯示信息後馬上退出了。若是容器仍在運行中,就不須要 --all 參數了:

    docker container ls --all
    
    CONTAINER ID IMAGE COMMAND CREATED STATUS 54f4984ed6a8 hello-world "/hello" 20 seconds ago Exited (0) 19 seconds ago

     

歸納和備忘單

 
## List Docker CLI commands
docker
docker container --help

## Display Docker version and info
docker --version
docker version
docker info

## Execute Docker image
docker run hello-world

## List Docker images
docker image ls

## List Docker containers (running, all, all in quiet mode)
docker container ls
docker container ls --all
docker container ls -aq

 

第一部分的結論

容器化使得持續集成和持續部署(CI/CD)得以無縫實現。例如:

  • 應用程序再也不對系統有依賴。

  • 更新能夠推送到分佈式應用程序的任何部分。

  • 資源密度能夠被優化。 

使用 Docker,擴展應用程序就是啓動新的可執行文件,不運行繁重的虛擬機。

相關文章
相關標籤/搜索