4.Docker之容器的使用

Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器,Docker 容器通过 Docker 镜像来创建。

所以我们要创建容器和使用容器之前必须先有镜像。

关于Docker镜像的来源主要有两种方式:

  • ①.基于dockerfile自定义一个Docker镜像;
  • ②.从远程仓库获取Docker镜像

注意:使用dockerfile自定义一个Docker镜像后面会有章节详细描述,这里不作说明 !

一、镜像的获取


1.首先,列出镜像列表

由于本地还没有相关的镜像,所以这里为空

2.查找镜像

我们可以从 Docker Hub 网站来搜索镜像,Docker Hub 网址为: https://hub.docker.com/,也可以使用 docker search 命令来搜索镜像。

比如我们需要一个tomcat的镜像来作为我们的web容器,可以通过 docker search 命令搜索 tomcat 来寻找适合我们的镜像。

3.拉取镜像

根据上面search的镜像,可以使用 docker pull 命令来下载它,我们决定选择第一个官方镜像:

4.再次查看本地镜像列表

各个列名说明:

REPOSITORY:表示镜像的仓库源;TAG:镜像的标签;IMAGE ID:镜像ID;CREATED:镜像创建时间;SIZE:镜像大小

5.根据镜像版本拉去镜像

上面我们是直接选择官方版本拉取,而且拉取的会是最新的tomcat版本,假设我要拉取旧版本,例如只需要tomcat7,那么如何拉取?

我们可以直接去在线仓库查询版本,地址:https://hub.docker.com,比如我查询的关键字是tomcat,那么就会列出相关的版本镜像:

接着,找到是否有tomcat 7这个版本:

发现是有tomcat 7这个版本,所有我们可以直接拉去tomcat:7,冒号后面的数字等就是版本信息,我们试着拉取一下:

再次查看本地镜像仓库:

发现TAG也存在7这个版本的了。

注意:由于使用容器需要镜像,所以这里对镜像的描述只是简单的搜索和拉取,后面有章节会详细说明镜像的使用!!!

二、使用容器


1.Docker客户端命令选项

①.使用docker命令来查看所有客户端命令选项

②.除此之外,我们可以使用docker command --help更深入的了解某一个命令的详细用法,比如启动容器的指令:

而针对OPTIONS和COMMAND以及ARG也有相应的描述,比如:

列表太多,就截图部分,详细的可以自己去查看。

2.启动容器

①.首先,我们查看本地镜像

②.我们根据tomcat7这个镜像启动容器

说明1:docker run是启动容器的命令,后面的-d是在后台运行,-p是指定宿主机的端口和容器的端口绑定,--name后面加一个名字代表容器的名称,663a81dd60a7是代表使用哪个镜像来启动容器。

说明2:宿主机代表的是容器所在的外层环境,即Centos;而8080端口是因为tomcat默认绑定的端口是8080,我们将容器的8080端口映射到宿主机的9999端口,所以我们可以在网页上通过访问宿主机的ip+端口的形式从而访问到容器的web容器,即tomcat。

所以,我们试着访问一下:

说明3:再来看看,当我们启动容器后,返回的一串很长的字符串是什么:

首先,可以使用docker ps可以查看当前正在运行的容器,然后和启动容器后返回的字符串对比下:

红色方框圈起来的地方,有部分是完全相同的,因为容器的id是唯一的,所以可以推断启动容器后返回的是容器的id,只是我们查看正在运行的容器,能看到容器ID仅仅是部分。

3.查看运行的容器和所有容器

我们可以使用docker ps来查看正在运行的docker容器:

列明说明:CONTAINER ID是容器的ID,IMAGE是镜像的ID,PORTS代表本机9999端口映射到容器中的8080端口,NAMES是容器的名称。

我们还可以使用docker ps -a查看所有容器,包含在运行和没有运行的,我们再创建启动一个容器,然后关闭掉一个,再来查看所有容器,会比较明显:

再来查看正在运行的容器有哪些:

由上图可见,目前已经两个容器运行着;接着我们关掉myFirstDocker这个容器,可以使用docker stop 容器名称/容器ID来关闭容器:

4.网络端口的绑定以及快捷方式

从前面,我们指定可以使用-p(小写)来执行宿主机与容器端口的绑定,我们可以使用-P(大写,不用具体指定端口,宿主机会自动绑定到容器的端口)来绑定容器:

再来尝试访问宿主机的IP+32768端口(该端口是宿主机提供,不是我们手动指定):

除此之外,docker还提供了另一个快捷方式:docker port,使用 docker port 可以查看指定 (ID或者名字)容器的某个确定端口映射到宿主机的端口号。

上面我们创建的容器ID为:adc35632515b名字为:docker2,我可以使用docker port adc35632515b或docker port docker2来查看容器端口的映射情况:

5.日志查看

使用docker logs [ID或者名字]命令可以查看容器内部的标准输出:

而且,-f:让 dokcer logs 像使用 tail -f 一样来输出容器内部的标准输出,例如:

6.查看docker进程

使用docker top 容器id或名称可以查看docker进程

7.停止docker容器

可以使用docker stop 容器名称或id关闭容器:

8.重启容器

不管是否启动的容器都可以通过docker restart 容器名称或id来启动或重启docker容器:

9.移除容器

使用docker rm 容器名称或id来移除容器,但要注意的是,要移除前必须先停止容器,否则会报以下错误:

猜你喜欢

转载自www.cnblogs.com/Json1208/p/8910541.html
今日推荐