虚拟化技术,docker容器

  • docker能够解决的问题
  • docker的思想
  • 虚拟化架构
  • hypervisor
  • docker容器
  • 常用命令


docker能够解决的问题

  1. 程序环境不一致,不能够快速运行,还得浪费大量时间调试环境。
  2. 在多用户的操作系统下,会相互影响。
  3. 当用户量暴增,使用增加服务器应对的方式时,运维的成本过高。

docker的思想

  1. 集装箱
    会将所有需要的内容放到不同的集装箱中,谁需要这些环境就直接拿到这个集装箱就可以了。
  2. 标准化
  • 运输的标准化:docker会有一个码头,所有上传的集装箱都放在了这个码头上,当有人需要某一个换进,就直接去搬运这个集装箱就可以了。
  • 命令的标准化:docker提供了一系列的命令,帮助我们去获取集装箱
  • 提供了REST的API

虚拟化架构

容器tar 怎么 容器的常用命令_服务器


容器tar 怎么 容器的常用命令_容器tar 怎么_02


容器tar 怎么 容器的常用命令_centos_03

hypervisor

hypervisor(虚拟机监视器),是一种运行在物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享一套基础物理硬件,因此也可以看做是虚拟环境中的“元”操作系统。它可以协调访问服务器上的所有物理设备和虚拟机。
当服务器启动时,hypervisor会给每一台虚拟机分配适量的资源(内存,cpu,网络,磁盘等等)。

docker容器

虚拟机的问题:不能最大化地利用资源。

解决方案:docker。

容器tar 怎么 容器的常用命令_docker_04


镜像就是一些特殊的文件叠加而成,容器要依赖镜像进行创建。就好比要创建一张图,需要有一个ps软件。

常用命令

列出镜像:

容器tar 怎么 容器的常用命令_centos_05


拉取镜像:docker pull centos:version(如果没有version就默认是最新版本)

容器tar 怎么 容器的常用命令_服务器_06


run命令:

创建交互式容器:

docker run -i -t --name=c1 centos /bin/bash或者
docker run -i -t --name c1 centos /bin/bash
-i:交互式容器
-t:tty终端(创建好之后会分配一个终端,用于操作容器)
--name:指定容器的名称(唯一,不能重复)
交互式容器退出,容器停止

创建守护式容器(后台运行):

创建:
docker run -d --name c2 centos /bin/bash
启动:
docker exec -it c2 /bin/bash
守护式容器退出(退出命令exit),容器继续运行

查看容器:

docker ps:查看正在运行的容器
docker ps -a:查看运行过的容器
docker pa -l:查询最后一次运行的容器

启动、停止容器:

docker stop c1
docker start c1

查看docker详细信息:

docker inspect c1

删除容器:

不能删除正在运行的容器
docker rm c1
docker rm `docker ps -a -q`:先查询出所有的容器,然后再进行删除

查看容器日志:

docker logs 容器名称/id