虚拟机:通过虚拟化技术模拟真实的硬件从而创建出来的一台拥有完整功能的逻辑计算机。

Docker容器:docker容器也是一种虚拟化技术,和传统虚拟化不一样的是docker只模拟一个程序最核心的运行环境,所以十分小巧,启动更快。

Docker虚拟化技术和传统虚拟化技术架构对比:

Docker基本使用_docker

对比

特点

虚拟机

完整的系统功能,隔离性更好,占用空间大(通常以G为单位),运行占用资源较多,启动慢(分钟级启动)

容器

只有程序运行的核心环境,不需要安装直接运行镜像即可,隔离性一般,十分小巧占用空间极小(一般以M为单位),启动快(秒级启动)

 

Docker基本使用_mysql_02

 

 

Docker基本使用_docker_03

 

 

镜像(image):
docker镜像就好比是一个模板,可以通过这个模板来创建容器服务,tomcat镜像=>run=>tomcat1容器(提供服务器),通过这个镜像可以创建多个容器(最终服务运行或者项目运行就是在容器中的)。

容器(container):
Docker利用容器技术,独立运行一个或者一个组应用,通过镜像来创建的。
启动,停止,删除,基本命令!
目前就可以把这个容器理解为就是一个简易的linux系统

仓库(repository):
仓库就是存放镜像的地方!
仓库分为公有仓库和私有仓库!

 

# docker images
REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE
hello-world             latest              feb5d9fea6a5        16 months ago       13.3kB
tensorflow/tensorflow   latest-devel-py3    e3e8e5092607        2 years ago         1.94GB
tensorflow/tensorflow   latest-gpu          58a8e83b7dbf        4 years ago         3.36GB
nvidia/cuda             latest              52bf259063bf        4 years ago         2.24GB

# 解释
REPOSITORY     //镜像的仓库源
TAG          //镜像的标签
IMAGE ID       //镜像的id
CREATED        //镜像的创建时间
SIZE          //镜像的大小
# 命令参数可选项
 -a, --all         # 显示所有镜像 (docker images -a)
 --digests 		      #显示镜像的摘要信息(docker images --digests)
 -q, --quiet        # 仅显示镜像id (docker images -q)
[root@localhost ~]# docker search mysql
NAME      DESCRIPTION                            STARS     OFFICIAL   AUTOMATED
mysql     MySQL is a widely used, open-source relation…   12966     [OK]       
......
# 解释
NAME			   //镜像仓库源的名称
DESCRIPTION		//表示该镜像的功能
STARS			   //表示下载热度
OFFICIAL		  //是否docker官方发布
AUTOMATED		  //自动构建
# 命令参数可选项 (通过搜索来过滤)
--filter=STARS=3000     # 搜索出来的镜像就是stars大于3000的
[root@localhost ~]# docker search mysql --filter=STARS=3000
NAME      DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql     MySQL is a widely used, open-source relation…             12966      [OK]       
mariadb   MariaDB Server is a high performing open sou…              4966      [OK]
docker version         # 显示docker的版本信息
docker info           # 显示docker的系统信息,包括镜像和容器的数量
docker 命令 --help      # 帮助命令

使用docker的run参数可以运行一个容器,-i参数表示以交互式模式运行容器,-t参数表示为容器重新分配一个伪终端,这三个参数联合使用,就可以控制Docker容器以交互式来运行。

 

 

 

 

可以运行该镜像,执行结果如下所示:

Docker基本使用_docker_04

 

 

 上面这种执行方式,会在执行命令后进入Docker容器的终端,从而对Docker镜像进行控制,在执行exit退出后,也会随之关闭该镜像。

 

Docker镜像后台运行

此外,我们还可以控制Docker镜像在后台运行,此时,我们不能使用-i和-t参数了,而是使用-d参数指定后台运行Docker容器,使用-c参数指定运行容器的命令。

 

 REF

https://m.runoob.com/docker/docker-container-usage.html