Docker容器是Docker進程+鏡像文件(Docker 鏡像中包含了運行環境和配置)python
官方定義:Docker是以Docker容器爲資源分割和調度的基本單位,封裝整個軟件運行時環境,爲開發者和系統管理員設計的,用於構建、發佈和運行分佈式應用的平臺。是一個跨平臺,可移植而且簡單易用的容器解決方案。web
Docker是經過內核虛擬化技術(namespace及cgroups等)來提供容器的資源隔離與安全保障等,因爲Docker經過操做系統層的虛擬化實現隔離,因此Docker容器在運行時,不須要相似虛擬機VM額外的操做系統開銷,提升資源利用率。docker
控制組是Linux容器機制中的另一個關鍵組件,它負責實現資源的審計和限制。當用docker run啓動一個容器時,Docker將在後臺爲容器建立一個獨立的控制組策略集合。
它提供了不少有用的特性;以及確保各個容器能夠公平地分享主機的內存、CPU、磁盤等資源;固然,更重要的是,控制組確保了當發生在容器內的資源壓力不會影響到本地主機系統和其餘容器。
儘管控制組不負責隔離容器之間相互訪問、處理數據和進程,可是它在防止拒絕服務攻擊(DDoS)方面是必不可少的。尤爲是在多用戶的平臺(好比公有或私有的PaaS)上,控制組十分重要。例如,當某些應用容器出現異常的時候,能夠保證本地系統和其餘容器正常運行而不受影響。
數據庫
Docker 使用客戶端-服務器 (C/S) 架構模式,使用遠程API來管理和建立Docker容器。編程
Docker 容器經過 Docker 鏡像來建立。ubuntu
容器與鏡像的關係相似於面向對象編程中的對象與類。瀏覽器
Docker 容許你在容器內運行應用程序, 使用 docker run 命令來在容器內運行一個應用程序。安全
docker run -i -t ubuntu:15.10 /bin/bash bash
-t:在新容器內指定一個僞終端或終端。服務器
-i:容許你對容器內的標準輸入 (STDIN) 進行交互
能夠經過運行exit命令或者使用CTRL+D來退出容器
docker stop + CONTAINER ID 命令來中止容器;
docker ps 查看正在運行的容器;
docker start 已經中止的容器,咱們可使用改命令 來啓動;
docker ps -l 查詢最後一次建立的容器;
docker rm 命令來刪除不須要的容器(刪除容器時,容器必須是中止狀態);
docker restart 正在運行的容器,咱們可使用該命令來重啓;
docker pull training/webapp // 載入鏡像
docker run -d -P training/webapp python app.py
-d:讓容器在後臺運行。
-P: 隨機端口映射,容器內部端口隨機映射到主機的高端口
使用 docker ps 來查看咱們正在運行的容器:
Docker 開放了 5000 端口(默認 Python Flask 端口)映射到主機端口 32769 上。
這時咱們能夠經過瀏覽器訪問WEB應用
也能夠經過 -p 參數來設置不同的端口 "docker run -d -p 5000:5000 training/webapp python app.py "容器內部的 5000 端口映射到咱們本地主機的 5000 端口上。
咱們可使用 docker images 來列出本地主機上的鏡像
docker search 搜索 httpd 來尋找適合咱們的鏡像
docker pull 下載鏡像
當咱們從docker鏡像倉庫中下載的鏡像不能知足咱們的需求時,咱們能夠經過如下兩種方式對鏡像進行更改。
1)從已經建立的容器中更新鏡像,而且提交這個鏡像
docker tag 命令,爲鏡像添加一個新的標籤。