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"]

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 转载自 http://blog.opskumu.com/docker.html 一、Docker 简介 Docke...
    极客圈阅读 13,586评论 0 120
  • Docker — 云时代的程序分发方式 要说最近一年云计算业界有什么大事件?Google Compute Engi...
    ahohoho阅读 15,712评论 15 147
  • 五、Docker 端口映射 无论如何,这些 ip 是基于本地系统的并且容器的端口非本地主机是访问不到的。此外,除了...
    R_X阅读 5,813评论 0 7
  • docker基本概念 1. Image Definition 镜像 Image 就是一堆只读层 read-only...
    慢清尘阅读 12,856评论 1 21
  • 2011年发布于某博客,弃用之后人工搬到简书,内容可能比较旧,仅供参考 IEEE802.3定义了以太网的两种基本操...
    yekai阅读 4,140评论 0 1

友情链接更多精彩内容