跳到主要内容
  1. 所有文章/

Docker学习笔记

点击查看Docker笔记列表

Docker概述 #

出现的原因 #

一款产品有两个环境:开发(开发环境)和上线(运维环境)。环境配置和切换过于麻烦,每一台机器都要部署环境(集群Redis,ES,Hadoop),费时费力。解决思路:发布一个项目(jar+(redis+mysql+jdk+es))的同时能不能都带上环境安装打包?

传统思路:开发项目,运维部署项目和环境配置。

现在:开发打包部署上线,一套流程做完。

Docker为以上问题,提出了解决方案!Docker的思想来自于集装箱:通过特殊的隔离机制,将服务器利用到机制。

历史 #

2013年

Docker诞生

Docker & LXC:Docker的第一个执行环境:LXC;但从0.9版本开始被Libcontainer取代

Docker & Libcontainer:Libcontainer为Docker封装了Linux提供的基础功能,如cgroups,namespaces,netlink和netfilter等

2015年

Docker发布了RunC,一个轻量级的跨平台的容器运行;可以直接利用Libcontainer运行容器

Docker & OCI(The Open Containers Initiative): OCI是一个轻量级的开放式管理架构,由Docker,CoreOS和容器行业的其他领导厂商2015年建立,维护一些项目,制定容器运行的规范等

2016年

Docker分拆了Containerd,并将其捐献给了社区;使得Docker将容器的管理功能移出Docker的核心引擎并移入了一个单独的守护进程(containerd)

介绍 #

Docker是基于GO语言开发的开源项目!!

官网:https://www.docker.com/

文档地址:https://docs.docker.com/

仓库地址:https://hub.docker.com/

与虚拟机相比 #

虚拟机技术缺点:启动慢,占用资源多,冗余步骤多 Docker容器化技术:不是模拟出一个完整的操作系统。

总结:

  1. 传统虚拟机:虚拟出一系列硬件,运行一个完整的操作系统,然后在这个系统安装和运行软件
  2. 容器内的应用直接运行在宿主机上,容器没有自己的内核,也没有虚拟出硬件,所以十分轻便
  3. 每个容器是相互隔离的,每个容器都有一个属于自己的文件系统,互不影响。

Docker可以实现 DevOps(开发,运维)

  1. 应用更快速的交付和部署:打包镜像发布测试,一键运行
  2. 更便捷的升级和扩缩容:使用了Docker,部署应用就像搭积木一个,项目打包为一个镜像,方便扩展
  3. 更简单的系统运维:在容器化之后,开发和测试环境都是高度一致的。
  4. 更高效的计算资源利用:Docker是内核级别的虚拟化,可以在一个物理机上运行多个容器实例,容器的性能可以被压榨到极致。

Docker笔记列表 #

Docker06dockerfile

·📄 2022 字·🍵 5 分钟
什么是DockerfIle? #Dockerfile 就是用来构建 Docker 镜像的构建文件。一种命令脚本。通过这个脚本可以生成镜像,镜像是一层层的,脚本也是一个个的,每个命令都是一层。

Docker07容器网络

·📄 2163 字·🍵 5 分钟
Docker0 #[root@izwz91mv6i3x6k12jjqh60z ~]# ip addr #本机回环地址 127.0.0.1/8 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen......