Docker 入門 第一部分: 定位和設置

Docker 入門 第一部分: 定位和設置

docker入門教程可讓你學會一下內容:
1. 搭建你的Docker環境(也就是本頁內容)
2. 構建一個鏡像,並以一個容器的方式運行它
3. 擴展你的應用程序以運行多個容器
4. 跨集羣發佈你的應用程序
5. 經過添加一個後端數據庫來堆疊服務
6. 把你的應用程序部署到生產環境docker

Docker概念

docker是一個用來爲開發者和系統管理員提供用容器來開發、部署、運行應用程序的平臺。使用Linux容器部署應用程序被稱做容器化。容器不是一個新概念,它們的用途是輕鬆部署應用程序數據庫

容器化愈來愈受歡迎,由於容器:
* Flexible 靈活:即便最複雜的應用程序也能夠給容器化
* Lightweight 輕量:多個容器能夠利用並共享主機內容
* Interchangeable 可替換:你能夠快讀部署更新和升級
* Portable 便攜:你能夠在本地構建,而後部署到雲,且能夠在任何地方運行
* Scalable 可擴展:你能夠增長並自動發佈容易副本
* Stackable 可堆疊:你能夠快速垂直的堆疊服務windows

鏡像和容器

一個容器經過一個鏡像運行起來。鏡像是一個可運行的包,它包含運行一個應用程序所需的全部內容——代碼、運行時、庫文件、環境變量和配置文件。後端

一個容器就是一個鏡像的一個運行時實例——鏡像在內存中運行時的狀態(也就是一個有狀態的鏡像或者一個用戶進程)。運行docker ps命令後你能夠看到一個你正在運行的容器的列表,就好像你在Linux中同樣。bash

容器和虛擬機

每個容器天生就能夠運行在Linux上並和其餘的容器共享主機內核。它運維一個獨立的進程,不會比其餘可執行程序佔用更多內存,這使它變得輕量化。app

相比之下,一個虛擬機(Virtual Machine)運行一個完整的「guest「操做系統,經過一個hypervisor對主機資源進行訪問。一般,虛擬機提供的環境,比大多數應用程序須要的資源要多。運維

Container VM

準備你的Docker環境

支持的平臺上安裝Docker社區版或企業版的一個還在維護的版本分佈式

完整的 Kubernetes 集成測試

安裝Docker

測試 Docker 的版本

  1. 運行 docker --version 並確認你有一個被支持的Docker版本
docker --version
Docker version 17.12.0-ce, build c97c6d6
  1. 運行 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,來測試你的安裝:
    hello-world 是docker的最小化鏡像實例中的一個:
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.
...
  1. 列出已經下載到你的機器的 hello-world 鏡像
docker image ls
  1. 列出 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 ,擴展你的應用程序的問題在於啓動新的可執行文件,而不是運行臃腫的虛擬機。

相關文章
相關標籤/搜索