Docker 简记

本文内容:

  1. 用处
  2. 核心概念
  3. Dockerfile文件编写
  4. 常用命令
  5. 容器实现
  6. 镜像实现

用处:将 应用 以及 能使应用运行起来的环境一起打包成集装箱,实现一次构建,到处运行的目标
核心概念:

从抽象角度看
        镜像:文件+元数据(环境变量、端口映射等),应用运行时的快照
        容器: 将应用快照恢复并运行,运行中的应用
    
从实现的角度来看
        镜像:一堆只读层堆积成的 文件系统
        容器:一堆只读层 + 一可写层 组成的文件系统
        层:对文件所做的修改的集合

    
Dockerfile

 

  • FROM 声明基础镜像
  • RUN 创建镜像时运行的命令
  • WORKDIR 默认目录
  • CMD 容器启动时运行哪个命令

常用命令

  • docker search 镜像名          在仓库中查找镜像
  • docker pull 镜像名:Tag        拉取镜像
  • docker images -a                显示所有镜像
  • docker run 容器名 -p 主机端口号:容器端口号 -v 主机文件路径:容器文件路径  镜像名              重运行一个镜像的容器
  • docker start 容器名             恢复容器运行
  • docker exec 容器名 -it  进入后运行的命令       进入容器
  • docker ps -a                        显示所有容器
  • docker rm -f 容器名             强制删除容器
  • docker rmi -f 镜像名            强制删除镜像

容器实现

容器与虚拟机的最大区别就在于,多个容器是共享OS的,而虚拟机拥有独立的OS

容器是通过Linux的Namespace特性实现隔离的,命名空间可以让容器拥有自己整套可用的进程ID、文件系统、用户组等

容器还通过Cgroup实现了对系统资源的限制,确保了容器间的隔离性

镜像实现

镜像实现是依赖于联合文件系统,是一种分层系统,可以将多层文件以统一视角栈上,本质上镜像是由多层只读的文件层组成的,这样可以共享层,比如多个容器可以共享一个内核层的文件

运行容器时会在镜像层上加一个容器层(可写)

学习自

Docker实践(第1部分):Docker基础

http://dockone.io/article/783

Docker进阶与实战

https://blog.csdn.net/lmarster/article/details/105563254

https://www.cnblogs.com/nyh-blog/articles/11988406.html


    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值