什么是虚拟化?
虚拟化主要的目的主要是 更好利用高性能机器
全虚拟化架构!
操作系统层的虚拟化
平台虚拟化
hypervisor
docker的引入:
docker的介绍:
Docker时Docker.Lnc公司开源的一个基于LXC技术之上搭建的Container容器引擎,源代码托管在Github上,基于Go语言并遵从Apache2.0协议开源。
Docker属于Linux容器的一种封装,提供简单易用的容器使用接口。
Docker将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了Docker,就不用担心环境问题。
总体来说,Docker的接口相当简单,用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。
docker特性
docker的安装
这里安装center os版本的:https://docs.docker.com/install/linux/docker-ce/centos/
分为企业版和社区版
这里我使用的是center os8
所以报错误信息:
package docker-ce-3:19.03.7-3.el7.x86_64 requires containerd.io >=
1.2.2-3, but none of the providers can be installed
看上面的内容,说的是containerd.io >= 1.2.2-3 ,意思就是 containerd.io 的版本必须大于等于 1.2.2-3
解决
1、要么就降低docker 的版本
2、如果不想降低docker 版本,那么就更新 containerd.io 的版本
dnf install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
最好更新为阿里云镜像仓库
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo
再次执行安装docker
yum install docker-ce docker-ce-cli
又出现个问题
docker-ce-cli-1安装中的文件/usr/share/man/man1/docker-attach.1.gz:19.03.7-3.el7.x86ʂ与包podman-manpages-1.4.2-5中的文件冲突。module_el8.1.0+237+63e26edc.noarch
与包podman-manpages-1.4.2-5中的文件冲突。
解决:
yum list podman-manpages #查看 podman-manpages
yum remove podman-manpages.noarch #卸载podman-manpages.noarch
安装:
sudo yum install docker-ce docker-ce-cli containerd.io
安装完成:
启动docker
sudo systemctl start docker
docker --version
设置开机启动
sudo systemctl enable docker
docker的架构
docker的一些命令
查看帮助命令:docker - help
启动docker:sudo systemctl start docker
查看运行状态:systemctl status docker
停止运行状态:systemctl stop docker
重启运行状态:systemctl restart docker
常用的:
列出镜像 docker images
拉取镜像 docker pull xx
查询镜像是否存在:
docker search images
删除镜像 docker rmi xx
如果拉取比较慢可以用镜像加速器:
标题创建一个容器:
创建一个交互式容器:
docker run -i -t --name=c1 centeros/bin/bash
退出交互式容器 exit
查看正在运行的容器 docker ps
交互式容器就是exit退出即消失.
创建一个守护式容器:
docker run -d --name c2 centeros /bin/bash
创建命令:docker run -itd --name c3 centeros /bin/bash
进入命令: docker exec -it c3 /bin/bash
但是这个exit是没有退出的
如何停止容器:
docker stop 容器名称
如何停止容器:
docker start 容器名称
如何重启容器:
docker restart 容器名称
查看容器的具体信息:
docker inspect c3
删除容器:
docker rmi 容器名称或者id
这个删除是需要容器不再运行 否则不能删除成功
查看容器日志:
docker logs 容器名称或者id
文件拷贝:
docker cp 1.txt c2:/root
目录挂载:
由上图可知 目录挂载解决进入容器修改配置文件的过程,他其实是将容器下面的文件映射到主机