Docker_03容器

作者: 5473 分类: Docker 发布时间: 2015-10-19 17:38 阅读数:352
简单的说,容器是独立运行的一个或一组应用,以及它们的运行态环境。
 启动容器
启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一个是将在终止状态(stopped)的容器重新启动。
因为 Docker 的容器实在太轻量级了,很多时候用户都是随时删除和新创建容器。
新建并启动 docker run
下面的命令输出一个”Hello World”,之后终止容器。
下面的命令则启动一个 bash 终端,允许用户进行交互。

  •  -t 选项让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上
  •  -i 则让容器的标准输入保持打开

当利用 docker run 来创建容器时,Docker 在后台运行的标准操作包括:

  • 检查本地是否存在指定的镜像,不存在就从公有仓库下载
  • 利用镜像创建并启动一个容器
  • 分配一个文件系统,并在只读的镜像层外面挂载一层可读写层
  • 从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去
  • 从地址池配置一个 ip 地址给容器
  • 执行用户指定的应用程序
  • 执行完毕后容器被终止
  • 启动容器
 
启动已终止容器 docker start
docker start -i <container id> :启动一个container并进入交互模式
容器的核心为所执行的应用程序,所需要的资源都是应用程序运行所必需的。除此之外,并没有其它的资 源。可以在伪终端中利用 ps 或 top 来查看进程信息。

 

守护态运行
若需要让 Docker 容器在后台以守护态(Daemonized)形式运行,可以通过添加 -d 参 数来实现。 
 
容器启动后会返回一个唯一的 id,也可以通过 docker ps 命令来查看容器信息。
要获取容器的输出信息,可以通过 docker logs 命令。

 

终止容器
可以使用 docker stop 来终止一个运行中的容器。
此外,当Docker容器中指定的应用终结时,容器也自动终止。 例如在启动了一个终端的容器后,用户可通过 exit 命令或 Ctrl+d 来退出终端,此时所创建的容器也立刻终止。
终止状态的容器可以用 docker ps -a 命令看到
此外, docker restart命令会将一个运行态的容器终止,然后再重新启动它。

 

进入容器
在使用 -d 参数时,容器启动后会进入后台。 某些时候需要进入容器进行操作,有很多种方法,包括使用 docker attach 命令或 nsenter 工具等。
attach 命令
但是使用 attach 命令有时候并不方便。当多个窗口同时 attach 到同一个容器的时候,所有窗口都会同步显示。当某个窗口因命令阻塞时,其他窗口也无法执行操作了。

 

nsenter 命令

nsenter 可以访问另一个进程的名字空间。nsenter 要正常工作需要有 root 权限

为了连接到容器,你还需要找到容器的第一个进程的 PID,可以通过下面的命令获取。

通过这个 PID,就可以连接到这个容器:

更简单的,可以下载 .bashrc_docker,并将内容放到 .bashrc 中。

这个文件中定义了很多方便使用 Docker 的命令,例如 docker-pid 可以获取某个容器的 PID;而docker-enter 可以进入容器或直接在容器内执行命令。

 

删除容器
可以使用 docker rm 来删除一个处于终止状态的容器。 例如
如果要删除一个运行中的容器,可以添加 -f 参数。Docker 会发送 SIGKILL 信号给容器。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注