Docker的初级应用
前言
本篇文章我们主要来介绍一下Docker的初级应用,前面文章已经向大家介绍了一下Docker中的一些概念,建议大家仔细读一下文章中对一些名词的解释,笔者已尽量白话描述以便于大家对Docker的学习。
获取Docker镜像
我们依然以lnmp环境为例,上一篇文章中我们提到过,大部分我们所需要的容器镜像在Docker Hub上都已存在,如果我们想在本地运行首先我们得从Docker Hub上进行下载,接下来我们来学习第一条命令:
# docker pull 该命令用于拉取线上镜像到本地
# nginx此为镜像名字
docker pull nginx
执行该命令后即会将名为nginx的镜像拉取到本地,如果需要其他镜像但不知道具体名字或者不知道有哪些选择我们可以执行命令:
# docker search用于搜索Docker Hub上的镜像
# nginx为镜像名字或镜像名字的关键词
docker search nginx
docker search nginx
命令执行结果如上图所示,第一个nginx是docker官方镜像,其他为个人搭建的镜像。
当我们执行docker pull
命令成功后可以通过此命令来查看我们本地的镜像:
docker images
通过上图我们可以很直观的看到
docker images
命令的执行结果,其中:
REPOSITORY:该列为镜像名字
TAG:该列为镜像的标签
IMAGE ID:该列为镜像的唯一标识ID
CREATE:该列为镜像拉取时间
SIZE:该列为镜像的大小
我们也可以用docker images -a
来查看不过与docker images
有所不同,请看下图:
我们可以看到多出来一些名为none的镜像,这一类镜像是我们在构建镜像时产生的中间镜像,在后面的文章会为大家解释。
创建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 ps
# 查看所有的容器,包括已停止的容器
docker pa -a
我们可以看到第一条命令
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
总结
本篇文章主要用于帮助大家学习Docker容器的初级应用,如何将将宿主机和容器进行互通我们将会在下一篇帖子中说明。