Docker筆記

參加工作以來,經歷的第二家公司,用心的記錄用到的技術。

Docker是一個改進的容器技術。具體的“改進”體現在,Docker為容器引入了鏡像,使得容器可以從預先定義好的模版(images)創建出來,并且這個模版還是分層的。

Docker 使用客戶端-服務器 (C/S) 架構模式,使用遠程API來管理和創建Docker容器。Docker 容器通過 Docker 鏡像來創建。容器與鏡像的關系類似于面向對象編程中的對象與類。

Docker? 面向對象

?容器? ? ? ? 對象

?鏡像? ? ? 類

Docker技術的基礎

namespace,容器隔離的基礎,保證A容器看不到B容器. 6個名空間:User,Mnt,Network,UTS,IPC,Pid

cgroups,容器資源統計和隔離。主要用到的cgroups子系統:cpu,blkio,device,freezer,memory

unionfs,典型:aufs/overlayfs,分層鏡像實現的基礎

Docker組件

docker Client客戶端————>向docker服務器進程發起請求,如:創建、停止、銷毀容器等操作

docker Server服務器進程—–>處理所有docker的請求,管理所有容器

docker Registry鏡像倉庫——>鏡像存放的中央倉庫,可看作是存放二進制的scm

一個完整的Docker有以下幾個部分組成:

dockerClient客戶端

Docker Daemon守護進程

Docker Image鏡像

DockerContainer容器

典型的場景

使應用的打包與部署自動化

創建輕量、私密的PAAS環境

實現自動化測試和持續的集成/部署

部署與擴展webapp、數據庫和后臺服務

Dockerfile

Dockerfile是docker構建鏡像的基礎,也是docker區別于其他容器的重要特征,正是有了Dockerfile,docker的自動化和可移植性才成為可能。

不論是開發還是運維,學會編寫Dockerfile幾乎是必備的,這有助于你理解整個容器的運行。

一般的,Dockerfile 分為四部分:基礎鏡像信息、維護者信息、鏡像操作指令和容器啟動時執行指令。’#’ 為 Dockerfile 中的注釋。先看下面一個小例子:

#基礎鏡像

FROM? <image> 或者 FROM <image>:<tag>
#維護者信息
MAINTAINER <somebodyname>
#ENV 設置環境變量
ENV? PATH /usr/local/nginx/sbin:$PATH
#COPY :復制本地主機的 (為 Dockerfile 所在目錄的相對路徑)到容器中的
#ADD 文件放在當前目錄下,拷過去會自動解壓
ADD nginx-1.8.0.tar.gz? /usr/local/
ADD epel-release-latest-7.noarch.rpm /usr/local/
#RUN 在鏡像中要執行的命令 格式為RUN 或 RUN ["executable", "param1", "param2"]
RUN rpm -ivh /usr/local/epel-release-latest-7.noarch.rpm
RUN yum install -y wget lftp gcc gcc-c++ make openssl-devel pcre-devel pcre && yum clean all
RUN useradd-s/sbin/nologin -M www
#WORKDIR 指定當前工作目錄,相當于cd,可以有多個
WORKDIR /usr/local/nginx-1.8.0
RUN ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-pcre && make && make install
RUN echo"daemon off;">> /etc/nginx.conf
#EXPOSE 指定容器要打開的端口號,映射端口
EXPOSE 80
#CMD 運行以下命令
CMD ["nginx"]

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 轉載自 http://blog.opskumu.com/docker.html 一、Docker 簡介 Docke...
    極客圈閱讀 10,524評論 0 120
  • Docker — 云時代的程序分發方式 要說最近一年云計算業界有什么大事件?Google Compute Engi...
    ahohoho閱讀 15,591評論 15 147
  • 五、Docker 端口映射 無論如何,這些 ip 是基于本地系統的并且容器的端口非本地主機是訪問不到的。此外,除了...
    R_X閱讀 1,787評論 0 7
  • docker基本概念 1. Image Definition 鏡像 Image 就是一堆只讀層 read-only...
    慢清塵閱讀 8,795評論 1 21
  • 2011年發布于某博客,棄用之后人工搬到簡書,內容可能比較舊,僅供參考 IEEE802.3定義了以太網的兩種基本操...
    yekai閱讀 700評論 0 1