当前位置: 美高梅棋牌 > 智能家电 > 正文

Docker 学习应用篇之一: 初识Docker

时间:2019-10-08 06:34来源:智能家电
前言 本篇文章我们主要来介绍一下Docker的初级应用,前面文章已经向大家介绍了一下Docker中的一些概念,建议大家仔细读一下文章中对一些名词的解释,笔者已尽量白话描述以便于大家

前言

本篇文章我们主要来介绍一下Docker的初级应用,前面文章已经向大家介绍了一下Docker中的一些概念,建议大家仔细读一下文章中对一些名词的解释,笔者已尽量白话描述以便于大家对Docker的学习。

    Docker 自从2013年以来就非常的火热,无论是从github上的代码活跃度,还是Redhat在RHE6.5中集成对Docker的支持,等等。第一次接触Docker,还是老师给我们介绍的。

获取Docker镜像

我们依然以lnmp环境为例,上一篇文章中我们提到过,大部分我们所需要的容器镜像在Docker Hub上都已存在,如果我们想在本地运行首先我们得从Docker Hub上进行下载,接下来我们来学习第一条命令:

# docker pull 该命令用于拉取线上镜像到本地# nginx此为镜像名字docker pull nginx

执行该命令后即会将名为nginx的镜像拉取到本地,如果需要其他镜像但不知道具体名字或者不知道有哪些选择我们可以执行命令:

# docker search用于搜索Docker Hub上的镜像# nginx为镜像名字或镜像名字的关键词docker search nginx

图片 1docker search nginx命令执行结果如上图所示,第一个nginx是docker官方镜像,其他为个人搭建的镜像。

当我们执行docker pull命令成功后可以通过此命令来查看我们本地的镜像:

docker images

图片 2通过上图我们可以很直观的看到docker images命令的执行结果,其中:

REPOSITORY:该列为镜像名字TAG:该列为镜像的标签IMAGE ID:该列为镜像的唯一标识IDCREATE:该列为镜像拉取时间SIZE:该列为镜像的大小

我们也可以用docker images -a来查看不过与docker images有所不同,请看下图:

图片 3我们可以看到多出来一些名为none的镜像,这一类镜像是我们在构建镜像时产生的中间镜像,在后面的文章会为大家解释。

 1.初识Docker 

创建Docker容器

之前所做的所有事情都是为了获取镜像,我们的宿主机上尚未创建容器,此时我们可以依托上面获取到的镜像来创建一个容器:

# 参数i:打开STDIN,用于控制台交互# 参数t:分配tty设备,可以支持终端登录# 参数d:指定容器是否后台运行# 参数name:指定容器启动的名称# 最后一个nginx意思是指定要启动的容器名称docker run -i -t -d --name=nginx nginx# 此命令等价于docker run -itd --name=nginx nginx

如果不加参数-d,我们会直接进入容器中,相当于进入虚拟机命令行交互界面,我们可以直接在容器中进行任何Linux系统命令的操作。但该方式并不推崇,也并不友好,我们习惯性使用docker exec来进入容器

一开始接触Docker不知道它是干啥的。百度了一下,Docker是为开发者和系统管理员设计的,用来发布和运行分布式应用程序的一个开放性平台。Docker是一种Linux容器工具集,Docker的思想来自于集装箱,在一艘船上可以把货物规整的摆放起来。每个集装箱都是专门装一种货物的,集装箱和集装箱之间互不干扰,于是就不需要专门运送某个物品的船,一艘大船把所有集装箱都装上,一次运走。其实这种解释对于我们开发程序的人来说,还是有点抽象。具体的来说呢,就是你有一台电脑,这就相当于一艘大船,你可以选择开发c++或者c#的程序,那么这台电脑就要有支持开发的c/c#语言环境,还有开发工具,和服务器。这个时候,这艘船相当于只能运送苹果,如果你想同时开发c的程序,也想开发python的程序,应该怎么办呢?那就要装python的运行环境,和开发工具,服务器。这样可能会和之前的c环境冲突,比如端口冲突。所以这个时候我们就需要Docker,他就像一个集装箱,把python的环境和c的环境,分别集装起来,让二者互不干扰。这样一个电脑,可以开发多种软件。Docker的好处当然远不止这个咯。

容器的查看、启动、关闭和删除

接下来介绍如何查看Docker容器的状态,查看本地已经启动或停止的容器我们可以通过此命令查看:

# 查看正在运行的容器docker ps# 查看所有的容器,包括已停止的容器docker pa -a

图片 4我们可以看到第一条命令docker ps只展示当前处于运行状态的容器,而docker ps -a将处于停止状态的容器也展示了出来。下面我们来说明一下每一列的含义

CONTAINER ID:创建的容器ID,不要和镜像ID弄混哦IMAGE:创建容器时使用的镜像COMMAND:容器创建并启动后要执行的命令,类似于开机自启动CREATED:容器创建时间STATUS:容器当前状态,Up为运行中,Exited为停止状态PORTS:容器启用或与宿主机映射的端口,该项会在后面的文章详细介绍

启动和关闭容器

# 启动容器docker start nginx# 关闭容器docker stop nginx# nginx为启动的容器的名字,不是镜像名字,或者可以通过容器ID来启动/关闭

重启容器

# nginx为启动的容器的名字,不是镜像名字,或者可以通过容器ID来重启docker restart nginx

删除容器

# 删除已停止的容器,如果用来删除正在运行中的容器会报错的哦docker rm nginx# 删除正在运行中的容器docker rm -f nginx# nginx为启动的容器的名字,不是镜像名字,或者可以通过容器ID来删除docker rm 5f92fc3ead4e

注意:以上命令只能用来操作已经通过docker run创建成功的容器。

删除镜像

# 此nginx为镜像的名字docker rmi nginx# 或者可以通过镜像ID来删除docker rmi 9c26bc387aa9

 2. Docker的优点

总结

本篇文章主要用于帮助大家学习Docker容器的初级应用,如何将将宿主机和容器进行互通我们将会在下一篇帖子中说明。

      1)   轻量级:单机可以轻松支持上百个Container(集装箱),让个位数的虚拟化方案相形见绌

      2)快速就绪:一秒以内就可以启动,速度很快捷

编辑:智能家电 本文来源:Docker 学习应用篇之一: 初识Docker

关键词: