歡迎!咱們很高興您想學習 Docker。Docker 入門教程將教您如何:docker
Docker 是開發人員和系統管理員使用容器開發、部署和運行應用程序的平臺。使用 Linux 容器來部署應用程序稱爲容器化(containerization)。容器並非新概念,但經過容器輕鬆部署應用程序則是最近才實現的。 數據庫
容器化正在變得愈來愈流行,由於容器有如下特色:後端
Flexible 靈活性:即便是最複雜的應用也能夠放入容器。app
Lightweight 輕量性:容器利用並共享主機內核。分佈式
Interchangeable 通用性:能夠即時部署更新和升級。學習
Portable 便攜性:能夠構建本地應用,部署到雲端,並在任何地方運行。測試
Scalable 可擴展:能夠增長和自動分發容器副本。優化
Stackable 可堆疊:能夠即時縱向堆疊服務。ui
經過運行鏡像啓動容器。鏡像是一個可執行包,它包括運行應用程序所需的一切內容 -- 代碼、運行時、庫、環境變量和配置文件。spa
容器是鏡像的運行時實例,執行時鏡像在內存中變爲何(即具備狀態的鏡像或用戶進程)。您能夠看到運行容器的列表,該列表包含命令 docker ps
,就像 Linux 中同樣。
容器在 Linux 上本機運行,並與其餘容器共享主機的內核。它運行一個離散進程,不會佔用比任何其餘可執行文件更多的內存,所以它很輕量。
相比之下,虛擬機 (VM) 運行一個成熟的"來賓"操做系統,經過虛擬機管理程序虛擬訪問主機資源。一般,VM 提供的環境比大多數應用程序須要的資源更多。
在受支持的平臺上安裝維護的 Docker 社區版 (CE) 或企業版 (EE)。
運行 docker --version
,並確保您具備支持的 Docker 版本:
docker --version Docker version 17.12.0-ce, build c97c6d6
運行 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 鏡像 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. ...
列出下載到您的計算機的 hello - world 鏡像:
docker image ls
列出容器 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,擴展應用程序就是啓動新的可執行文件,不運行繁重的虛擬機。