1. 容器(Containers)
(1)Docker
(2)Kubernetes(k8s)
大海航行靠舵手——Kubernetes
K8s, 容器编排工具
Docker 有自己的容器编排工具:docker swap
注:这里边有个疑问,Docker跟k8s并列,都是一种容器;还是docker swap和k8s并列,是一种容器编排工具。
2. Docker 凭什么登上历史舞台?
(1)Long Long Time Ago
(2)虚拟化技术出现以后
虚拟化的优点:
资源池——一个物理机的资源分配到了不同的虚拟机里
很容易扩展——加物理机器or加虚拟机,不易受硬件厂商的控制。
很容易云化——亚马逊AWS,阿里云等(通过云服务,创建虚拟机,不是很懂)
绝大部分公司提供的服务,基本都部署在云上面。
虚拟化的局限性:
每一个虚拟机都是一个完整的操作系统,要给其分配资源,当虚拟机数量增多时,操作系统本身消耗的资源势必增多。
(3)容器解决了什么问题?
- 解决了开发和运维之间的矛盾
- 在开发和运维之间搭建了一个桥梁,是实现devops(具体的是指什么呢?)的最佳解决方案。
(4)什么是容器
- 对软件和其依赖的标准化打包
- 应用之间的相互隔离
- 共享同一个OS Kernel(具体的是什么呢?应该怎样理解呢?)
- 可以运行在很多主流的操作系统上
(5)Docker(Containers) VS Virtual Machines
Infrastructure: 物理资源
Operating system: 本机的操作系统
Hypervisor: 虚拟化层
Guest OS: 虚拟机的操作系统
从图中可以看出Docker在本地的操作系统上就能实现APP隔离。
即容器是APP层面的隔离,虚拟化是物理资源层面的隔离
(6) 虚拟化+容器
3. Docker 能干什么
- 简化配置:docker相当于一个容易,app(服务)所依赖的环境都装在此容器中,需要app(服务)时,容器一块儿拿走,减少了配置环境的步骤。
- 代码流水线管理:待续
- 提升开发效率
- 隔离应用
- 整合服务器:待续
- 调试能力:待续
- 多租户:待续
- 快速部署:待续
4. docker的安装
(1)在mac下的安装docker
待续
Mac 版的docker安装之后 会带有Docker engine,Docker CLI client,Docker compose,Docker Marchine
具体的,这些插件有什么用途,待续
注意:并没有含有kitematic(是一个创建inage的界面工具)
在terminal下打开docker:open /Applications/Docker.app
(2)基于docker安装tensorflow
docker pull 拉镜像
docker pull tensorflow/tensorflow:latest-py3-jupyter(镜像)
根据镜像 创建容器(此条可以忽略,下边的语句也可以创建容器,且将容器中的文件夹映射到本地)
docker run -it -p 8888:8888 tensorflow/tensorflow:latest-py3-jupyter
若出现下图情况,只是一个警告,可不用理睬。
创建容器 并将容器中的文件夹(/tf/notebooks)映射到本地文件夹(/code/neuralPython/)
docker run -it -p 8888:8888 --name tf3 -v ~/code/neuralPython/:/tf/notebooks tensorflow/tensorflow:latest-py3-jupyter
详见:TensorFlow
5. docker pull 出现unauthorized incorrect username or password.
我们在下载docker官网的镜像时,需要登录我们docker的账户 如果没有账户可以去docker官网注册
我们可以用docker login命令,登录我们的docker,username填写我们的用户名,登录成功后,就可以拉取镜像成功了。
另外,如果不知道该下什么镜像,可以去docker hub中看有哪些镜像哦。