Docker

ref: The Doocker Book

Docker

Ch 2 安裝Docker

容器是直接運行操作系統內核之上的用戶空間。

Docker核心組件:

  • Docker客戶端、服務器端,也成為Docker引擎;
  • Docker鏡像;
  • Registry;
  • Docker容器。

Docker用Registry來保存用戶構建的鏡像。
Registry分為:1. 公共;2. 私有。

Mac OS X Docker安裝說明:
ref: https://docs.docker.com/docker-for-mac/
按照Docker官網安裝Docker.app后需要設置PATH環境變量否則無法找到
docker命令;
設置方法:

vim ~/.bash_profile 
. .bash_profile
export PATH=/Applications/Docker.app/Contents/Resources/bin:$PATH

Ch 3 Docker入門

Docker命令

  • 容器管理
含義 命令
創建容器 docker run --name your_container_name -i -t ubuntu /bin/bash
啟動容器 docker start your_container_id_or_name
重啟容器 docker restart your_container_id_or_name
關閉容器 docker stop your_container_id_or_name
刪除容器 docker rm your_container_id_or_name
附著會話 docker attach your_container_id_or_name
強制退出容器 docker kill your_container_id_or_name
查看詳細容器配置 docker inspect your_container_id_or_name
查看容器安裝信息 docker info
查看正在運行的容器 docker ps
查看所有容器 docker ps -a
查看容器正在運行的進程 $ docker top your_container_id_or_name
查看容器端口映射 docker port
查看容器日志 docker logs
  • 創建守護式容器
docker run --name deamon_container_test -d ubuntu /bin/sh -c "while true; do echo Hello world; sleep 1; done"
  • 查看容器日志
docker logs --tail 100 your_container_name
  • 鏡像管理
含義 命令
查看鏡像 docker images
搜索 docker search image_name
構建鏡像 docker build -t your_image dockerfile_dir
刪除鏡像 docker rmi images_id
推送鏡像 docker push images_id
  • Docker Networking管理
含義 命令
創建網絡 docker network create

Ch 4 構建鏡像

Docker構建鏡像的方式:

  1. $ docker commit
  2. $ docker build
  • Dockerfile基于DSL(Domain Specific Language) 語法的指令來構建一個Docker鏡像;
  • 一旦有Dockerfile就可以使用$ docker build 命令基于該Dockerfile中的指令構建一個新的鏡像;

Dockerfile語法結構:

# 我是注釋
COMMAND arguments
  • 命令必須大寫
  • 命令后跟參數
  • Dockerfile中的指令會嚴格按照書序從上到下執行,所以應該合理安排指令順序;
Dcokerfile 執行流程;
  1. Docker從基礎鏡像運行一個容器;
  2. 執行一條指令,對容器做出修改;
  3. 執行類似$ docker commit 的操作,提交一個新的鏡像層;
  4. Docker在基于剛提交的鏡像運行一個新容器;
  5. 執行Dockerfile中的下一條指令,知道所有指令都執行完畢。
Dockerfile 指令
命令 含義
FROM 指定基礎鏡像
CMD 指定一個容器啟動時要運行的命令,注意:$ docker run 命令可以覆蓋CMD命令,CMD命令只能指定一條,如果指定多條則最后一條生效
RUN 指定鏡像被構建時運行的命令
ENTRYPOINT 與CMD指令類似,但$ docker run命令行指定的任何參數都會被當做參數再次傳遞給ENTRYPOINT指令中指定的指令
WORKDIR ENTRYPOINT或CMD命令運行的工作目錄
ENV 在鏡像構建過程中設置環境變量
USER 指定運行鏡像的用戶,默認:root
VOLUME 向基于鏡像創建的容器添加卷
ADD 用來指定將構建環境下的文件和目錄復制到鏡像中
COPY 復制文件,類似ADD但不會自動提取和解壓
LABEL 為Docker鏡像添加元數據
ONBUILD 能為鏡像添加觸發器
  • 從新鏡像啟動容器
$ docker run -d -p 80 --name web-server jackycser/web-server nginx -g "deamon off;"
  • 自動構建
    在GitHub或BitBucket倉庫中包含Dockerfile文件并將倉庫連接到Docker Hub即可。

Ch 5 使用Docker測試靜態網站

卷:是在一個或者多個容器內被選定的目錄,可以繞過分層的聯合文件系統(Union File System),為Docker提供持久數據或者共享數據。
這意味著對卷的修改會直接生效,并繞過鏡像。
當提交或者創建鏡像時,卷不被包含在鏡像里。

  • Docker Networking
    Docker Networking:容器之間的連接用網絡建立

5.3 Docker 用于持續集成

Ch 6 使用Docker構建服務

6.2 使用Docker構建一個Java應用服務

Ch 7 Docker 編配和服務發現

Docker編配:
服務的自動配置、協作和管理服務的過程。
在Docker的世界里,編配用來表述一組實踐過程,這個過程會管理運行在多個Docker容器里的應用,而這些Docker容器有可能運行在多個宿主主機上。

  • Docker Compose:用一個YAML文件定義一組要啟動的容器,以及容器運行時的屬性,Docker Compose 稱這些容器為“服務”:

容器通過某些方法并指定一些運行時的屬性來和其他容器產生交互。

  • 編配工具功能:
  1. 調度和集群管理
  2. 服務發現
  • Compose
含義 命令
啟動 docker-compose up
查看日志 docker-compose logs
停止 docker-compose stop
查看進程 docker-compose ps
刪除服務 docker-compose rm

7.3 Docker Swarm

Docker Swarm是一個原生的Docker集群管理工具。

  • Swarm 將一組Docker主機作為一個虛擬的Docker主機來管理。

Ch 8 使用Docker API

在Docker 生態系統中一共有3種API:

  1. Registry API:提供了與來存儲Docker 鏡像的 Docker Registry 集成的功能;
  2. Docker Hub API:提供了與Docker Hub集成的功能;
  3. Docker Remote API:提供了與Docker 守護進程進行集成的功能。
    所有這3種API都是RESTful風格的。
  • Docker Remote API 也提供了所有在命令行中能使用的對容器的所有操作。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Docker — 云時代的程序分發方式 要說最近一年云計算業界有什么大事件?Google Compute Engi...
    ahohoho閱讀 15,627評論 15 147
  • 轉載自 http://blog.opskumu.com/docker.html 一、Docker 簡介 Docke...
    極客圈閱讀 10,543評論 0 120
  • 一、Docker 簡介 Docker 兩個主要部件:Docker: 開源的容器虛擬化平臺Docker Hub: 用...
    R_X閱讀 4,409評論 0 27
  • 0. 前言 docker是什么?docker是用GO語言開發的應用容器引擎,基于容器化,沙箱機制的應用部署技術。可...
    sessionboy閱讀 3,884評論 2 49
  • “媽媽,今天我看到有個女孩子跟我穿了一樣的連衣裙。” “真的呀!” “是的,一模一樣,藍色的。” “那你不高興這樣...
    曼頭閱讀 264評論 0 0