一、docker


1.概念介绍


虚拟化:

是一种资源的管理技术,将计算机中的实体资源,进行抽象,然后呈现出来,目的是为了打破实体结构之间的不可分割障碍,使用户以更好的组态使用资源

形象化形容如下:

我有一台电脑 32G内存 2T固态 16核的cpu 需要给4个人使用,
可以使用虚拟化技术将一台高配置的电脑,抽象虚拟出多个低配值的电脑

将三台低配置的电脑通过虚拟化技术,进行资源的重新分配,整合成一台稍微高性能的电脑


沙箱(沙盒):
沙盒 是一个纯净的环境

anaconda 就是以沙盒环境 针对的是Python环境
virtualenv python的虚拟环境

例子:
工作环境中:同时维护或者开发多个项目
A 基于django1.11
B 基于 django2.0
创建两个python环境 一个环境中装django1.11
另一个环境安装 2.0

vm:虚拟机软件 针对的是系统级的虚拟环境
docker: 针对的也是系统级的沙箱环境
提供独立的开发环境
安全性 沙箱环境可以随时关闭,所以不存在感染病毒,使用沙箱环境起到隔离的作用

docker 是一种新的虚拟化技术
特点:速度快 占用资源少


2.docker简介


docker使用集装箱的思想,在开发过程中犹豫每个人的教育背景,个人习惯不同,代码水平不一致。有的程序写在linux环境,有的代码写在windows环境,在开过程中没有问题,但是项目部署上线时,由于前面几种原因,会导致各种兼容问题,会大大影响项目的部署时间。为了避免以上问题,我们可以创建相同的虚拟环境,同时都在虚拟环境中开发,上线部署时,只需要将环境整个打包部署


3.docker和vm的区别


vm
在这里插入图片描述
docker
在这里插入图片描述
vm能够完成的事情 docker也能做 并且占用资源更少
vm 在使用时 必须创建独立系统和系统内核
docker 不会创建新的系统内核 使用源系统的内核

vm 在装虚拟环境的时候 需要重新创建一个系统的内核
docker 不会重新创建一个系统内核 和主机共用一个内核 节省了环境部署所损耗的资源,将这些资源给应用去使用
docker 速度更快 占用资源更少

server服务器
host os系统
hypervisor管理程序
docker Engine引擎
Guest os虚拟机系统
bins.libs系统依赖组件
app应用

4.docker的安装


centos yum源中提供docker安装包

yum install docker -y

5.docker的基本操作


1.查看版本

docker --version

在这里插入图片描述
2.查看服务状态

systemctl status docker

3.启动和关闭服务

systemctl start docker
systemctl stop docker

6.docker的基本使用


镜像 images 封装好的一个docker实例,包含运行应用的依赖环境,和程序,只读的(相当于一个文件夹,但这个文件夹包含应用运行的依赖环境和程序,可以复制到别的地方,复制的就是镜像)

是一个只读的模板,一个独立的文件系统,包括运行容器所需的数据,可以用来创建新的容器,是由一层一层的系统文件组成

容器 container 用来打开,并使用景象,创建了虚拟环境。每个容器间是相互隔离的

仓库 registry 用来存放镜像

镜像一般存在远程仓库 docker hub
仓库分为公共库 私有库


二、镜像的操作


1.查看本地镜像


docker images  

在这里插入图片描述


2.查找镜像


查看远程仓库的镜像 格式: docker search 镜像名

docker search mysql

在这里插入图片描述


3.拉取镜像


格式:docker pull 镜像的名字

镜像操作 两个: 一个拉取镜像pull 上传镜像push

例子:拉取有mysql应用的镜像
在这里插入图片描述

downloading正在下载
download complete下载完成
waiting等待下载
Pull complete下载完成

4.修改本地镜像的仓库名


格式:

docker tag 仓库名 新名字

5.删除镜像


格式:

docker image rmi 镜像id/镜像名
docker rmi 镜像id或者镜像名

三、容器的操作:


1.创建容器


第一种创建容器,不启动容器

格式:

docker create  -it --name=名字 镜像id  /bin/bash
-i交互式
-t容器启动后进入命令行
–name要创建的容器名字
镜像id使用镜像的id
/bin/bash交互式采用shell终端

-i 和-t一起运行容器创建后就能登陆进去,并且分配一个伪终端
在这里插入图片描述


第二种:创建容器,并启动容器


格式:

docker run -dit --name 容器名 镜像id   /bin/bash
-d守护进程,守护容器,exit也不会停止
run创建容器后启动

在这里插入图片描述


2.启动容器(创建未运行时用create创建)


格式:

docker  start  -ai  容器名
-a将当前的输入 输出连接到容器上面
-i将当前的输入连接到容器上
start开始

在这里插入图片描述


3.进入容器(用run创建)


格式:

docker exec  -it   容器名  /bin/bash

在这里插入图片描述

exec进入容器
/bin/bash进入执行的第一个命令 交互式采用shell终端

4.退出容器 :exit


5.查看容器


查看正在运行的容器
格式:

docker ps
docker container ls

查看所有的容器

docker ps  -a
docker container ls --all

6.停止/关闭容器


格式:

docker container stop 容器id或者容器名字

在这里插入图片描述


7.启动容器(正常启动容器)


格式:

docker container start  容器id或者容器名字

在这里插入图片描述


8.删除容器


格式:

docker container rm 容器ID或者容器名字

注意:正在运行的容器无法删除
在这里插入图片描述


9.杀死容器(相当于强制停止容器,没有删除容器)


格式:

docker container kill 容器ID或者容器名字

在这里插入图片描述


四、使用mysql镜像


第一步:

docker run -itd --name mysql01 -e  MYSQL_ROOT_PASSWORD=密码  镜像id  

刚下的mysql镜像要通过-e 指定一个密码

指定端口号3306映射到的宿主机的33306
在这里插入图片描述
第二步:

docker exec -it mysql01 /bin/bash

第三步:

mysql -uroot -p123456

在这里插入图片描述
在这里插入图片描述


五、使用canda创建虚拟环境


conda create -n 虚拟环境的名字 python=指定版本

activate 虚拟环境名字

退出 deactivate


Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐