跳到主要内容
  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笔记列表 #

Docker01安装配置和基本原理

·📄 1092 字·🍵 3 分钟
安装 #环境准备: # Linux基础 Linux操作系统 使用 Xshell 连接远程服务器 查看环境: ##系统内核是3.10以上的 [root@izwz91mv6i3x6k12jjqh60z ~]# uname -r 3.10.0-514.26.2.el7.x86_64 #......

Docker02常用命令

·📄 3081 字·🍵 7 分钟
帮助命令: ##显示版本 [root@izwz91mv6i3x6k12jjqh60z ~]# docker version Client: Docker Engine - Community Version: 20.10.6 API version: 1.41 Go version:......

Docker03部署案例

·📄 2586 字·🍵 6 分钟
部署Nginx # 搜索镜像,建议去 docker hub 搜索,可以看到帮助文档 下载镜像 运行测试 配置容器内的ngnix的配置文件 https://hub.docker.com/

Docker04镜像

·📄 1274 字·🍵 3 分钟
镜像是什么? #镜像是一种轻量级,可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码,运行时库,环境变量和配置文件。

Docker05容器数据卷

·📄 832 字·🍵 2 分钟
什么是容器数据卷? #问题:如果数据都在容器中,那么我们容器删除,数据就会丢失!需求:数据可以持久化