(一)概念理解
- 虚拟化:是一种资源管理技术,将计算机上的各种实体资源进行抽象,重新呈现出来,打破了实体结构之间不可切割的障碍,使用户以更加合理的组态使用资源
比如:一个32G内存2T固态硬盘16G显卡的计算机,用来学习python基础,希望可 以同时提供4-5个人独立使用
沙箱
沙盒,小的,独立的纯净环境。
Anaconda 沙箱环境,可以创建独立的python环境
VM虚拟机
Docker 沙箱环境
1、提供独立的开发环境,便于开发
2、便于安全,沙箱环境可以随时关闭,所以不存在入侵和病毒感染,甚至可以使用沙箱进行病毒隔离。
Docker 是一种新的虚拟化技术。
Docker的图标是
Docker本意是码头工人,实际上采用的逻辑类似码头的集装箱。我们在开发的过程当中由于开发人员的背景,水平不一致。有的程序写在linux上,有的写在windows上,最后统一要部署到一台服务器,这台服务器有可能是Redhat,也有可能是centos,或者Ubuntu。于是就会出现一个兼容的问题。在本机没有任何问题的程序,到部署环节发生各种不兼容。这种情况很影响开发的效率。所有引入类似于集装箱的概念,在开发之初就将项目放到一个类似于集装箱的独立环境进行开发,到部署的时候只是部署集装箱环境,而集装箱环境已经被所有的系统指定了统一标准,不存在兼容问题。
Docker与vm 虚拟机区别:
Docker可以完成虚拟机可以完成的所有功能。而且比虚拟机开启更快,更方便。
Vm虚拟技术 docker虚拟技术
Server 服务器
HOST os 主机系统
HYPErvisor 虚拟机管理程序
DOCKER engine docker引擎
GUEST os虚拟环境系统
BINS/Libs 开发依赖包
APP 应用功能
Vm所有虚拟机在创建的时候回虚拟独立的系统内核,而docker所有的虚拟机共用主机的系统内核,节约了虚拟环境系统部署的资源,将更好的性能提供给了应用。
Register:仓库,用来存放docker 镜像。
Image:镜像,就是封装好的docker实例,包含要运行应用的依赖环境和程序,但是image镜像是只读的,无法进行直接操作。
Container:容器,用来打开,并且使用镜像
(二)Docker安装
Centos 7的yum源当中,本来就携带了docker的包,所以在centos当中进行docker安装,是所有安装当中最为简单的安装。
Docker安装完成
查看安装的docker包
(三)基本使用
Docker是一种服务,所有docker安装完成之后要启动
查看开始
查看docker的版本
查看docker的详细信息
Docker镜像查看
下载镜像
Pull 拉取
Push 推送
Docker默认请求dockerhub的源地址来下载镜像,dockerhub是外网地址,所以很慢,我们并不知道有多少docker镜像,以及镜像的名字。
修改docker源地址
重启docker服务
systemctl restart docker
查询所有的docker镜像
Waiting 等待下载
Downloading 下载中
Download complete 下载完成
Pull complete 拉取完成
查看拉取成功的镜像
Repository 仓库
Tag 镜像标签
Image id 镜像id
创建的时间 2周之前
Size 大小使用镜像,创建容器
Docker create -it --name mysql8.0 c7109f74d339 /bin/bash
Docker 命令
Create 创建
-i 交互式命令行
-t 将交互式命令行绑定到一个虚拟终端上
--name 容器的名称
mysql8.0 容器具体的名称
c7109f74d339 镜像id
/bin/bash 交互式采用shell虚拟终端
进入docker容器
Docker start -ai mysql8.0
Docker 命令
Start 开始,开启
-a 将当前输入/输出连接到容器上
-i 交互式命令行
退出镜像
采用run命令创建容器,并且启动
Docker 命令
Run 启动
-d 守护容器,容器当中的程序需要长期运行,创建一个守护容器
进入容器
Docker 命令
Exec 切入
分析docker container ls --all的参数
Container id 容器id
Image 镜像的id
Command 镜像命令
Created 容器的创建时间
Status 状态
Exited 退出
Up 启动
Ports 端口
Names 容器的名称
Docker container stop 102edb0e4a22容器id
Kill 终端容器,启动状态
Rm 删除容器,关闭状态