一、概念介绍
(一)虚拟化:
是一种资源的管理技术,将计算机中的实体资源,进行抽象,然后呈现出来,是为了打破实体结构之间的不可分割的障碍,使用户以更好的组态使用资源。
可以使用虚拟化技术将一台高配置的电脑,抽象虚拟出多个低配置的电脑
也可以将低配置电脑通过虚拟化技术,进行资源的重新分配,整合成一台稍高配置的电脑
(二)沙箱
沙箱,就是一个纯净的环境。
提供独立的开发环境
安全性:沙箱环境可以随时关闭,所以不存在感染病毒,使用沙箱环境起到隔离的作用
anaconda就是一种沙盒环境,针对的是Python环境。
virtualenv是python的虚拟环境。
在工作环境中,如果同时维护或者开发多个项目,比如:
A 基于django1.11
B 基于django2.0
可以创建两个python环境
一个环境中装django1.11
另一个环境中装django2.0
vm:虚拟机软件,针对的是系统级的虚拟环境
docker:针对的是系统级的沙箱环境
二、decker
(一)docker简介
图标:
docker使用集装箱的思想,在开发过程中由于每个人的教育环境,个人习惯不同,水平不一致。有的程序写在Linux环境下,有的程序写在Windows环境下,在开发过程中没有问题,但是项目部署上线时,由于前面的几种原因,会导致各种兼容问题,会大大影响项目的部署时间。为了避免以上问题,我们可以创建相同的虚拟环境,都在虚拟环境中开发,上线部署时,只需要将环境整个打包部署即可。
(二)docker和vm的区别
vm能够完成的事,docker也能做,并且占用资源更少。
server:服务器
host os:系统
hypervisor:管理程序
docker Engine:引擎
Guest os:虚拟机系统
bins/libs:系统依赖组件
app:应用
vm在使用时,必须创建独立系统和系统内核。
docker不会创建新的系统内核,使用源系统的内核。
(三)docker的安装
用Centos中yum源提供的docker安装包。
yum install docker -y
(四)docker的基本操作
查看版本
docker --version
查看服务状态
systemctl status docker
启动和关闭服务
systemctl start/stop docker
(五)docker的基本使用
镜像:images,封装好的一个docker实例,包含运行应用的依赖环境和程序,只读
容器:container,用来打开并使用镜像,创建了虚拟环境
仓库:registry,用来放镜像
镜像一般存在远程仓库docker hub,仓库分为公共库和私有库。
· 镜像的操作
查看本地镜像
docker images
查看远程仓库的镜像
docker search mysql
拉取镜像
docker pull 镜像的名字
downloading:正在下载
download complete:下载完成
waiting:等待下载
Pull complete 下载完成
修改本地镜像的仓库名
docker tag 仓库名 新名字
删除镜像
docker image rm 镜像id/镜像名
或
docker rmi 镜像id/镜像名
· 配置源
docker的源是在docker hub中,属于外网,所以我们可以配置成国内源。
docker配置源文件:/etc/docker/daemon.json
打开该配置文件添加
{"registry-mirrors": ["https://3laho3y3.mirror.aliyuncs.com"]}
保存并退出
重启服务
· 容器操作
第一种:创建容器,不启动容器
创建容器
格式:docker create -it --name=名字 镜像id /bin/bash
-i:交互式
-t:容器启动后进入命令行
–name:容器名字
使用镜像的id
/bin/bash 交互式采用shell终端
启动容器
格式:docker start -ai 容器名–启动并进入容器
-a:将当前的输入 输出连接到容器上面
-i:交互式
退出容器
exit
第二种:创建容器,并启动容器
创建容器,同时就启动了
格式:docker run -dit --name 容器名 镜像id /bin/bash
-d 守护进程,守护容器
进入容器
格式:docker exec -it 容器名 /bin/bash
退出容器
exit
(一)查看正在运行的容器
docker ps
或
docker container ls
(二)查看所有的容器
docker ps -a
或
docker container ls --all
(三)关闭容器
格式:docker container stop 容器id或者容器名字
(四)启动容器
格式:docker container start 容器id或者容器名字
(五)删除容器
注意:正在运行的容器无法删除
格式:docker container rm 容器ID或者容器名字
(六)杀死容器
格式:docker container kill 容器ID或者容器名字
三、使用mysql镜像
创建并运行
格式:docker run -itd --name=mysql01 -e MYSQL_ROOT_PASSWORD=密码 镜像id
进入
docker exec -it mysql01 /bin/bash