Docker 实践指南(4)

2018-07-05  本文已影响9人  Svon_Book

本节介绍容器的常用操作。
  前面说过,服务都是跑在容器里的,容器的底层实质上也是一个操作系统,能安装软件,有进程,只不过这个系统很精简。容器和虚拟机一样有启动、停止的状态。使用 ubuntu 14.04 镜像运行一个容器来体验一下:

$ docker run -it ubuntu:14.04 /bin/bash
root@bfffba2819bf:/#

这样我们就启动并进入到了容器里面,接着输入一些命令看看效果 ps aux ,ifconfig ,df -h
  上面命令中 -it 参数表示接管容器的标准输入输出并开启一个伪终端(其实和 windows 的远程连接是一个意思,在这里意思是从宿主机连接到容器里),跟在命令最后面的 /bin/bash 表示启动容器后要运行的进程,由于我们要与容器进行交互,所以得开启一个shell

输入exit退出当前容器,返回宿主机

 root@bfffba2819bf:/# exit

使用docker ps查看当前宿主系统中容器的状态

 $ docker ps

正常来说是查看不到东西,这是由于容器要一直保持启动状态,就得有持续活动的进程,如果没有或者进程运行一段时间自己结束掉了,容器会自动停止。这也就是为什么要在docker run 语句的最后面加上 /bin/bash ,如果不指定,容器里就没有进程,当然它将一直无法启动。理解这个概念很重要。

使用 docker ps -a 查看未能启动(过期)的容器

$ docker ps -a

尝试启动并查看它。操作容器可以使用容器名、容器ID、ID简写,下例演示ID简写的方式:

$ docker start 77

再次使用docker ps发现依旧未能启动,这是由于该容器启动后没有任何进程,故而自动停止了。删除这个容器,接下来创建一个有持久进程存在的容器。

删除容器:

$ docker rm --force 77fd6

创建一个容器,name为 daemon_container,不开启交互,以分离(--detach)的形式在后台持续运行:

 $ docker run --name daemon_container --detach ubuntu:14.04 \
 /bin/bash -c "while true; do echo I\'am living... ; sleep 1; done"

再次查看容器状态:


由于开启了一个死循环,所以这个进程是不会自己结束的。在宿主层面查看该容器的进程:

$ docker top daemon_container

看看容器的日志信息:

$ docker logs daemon_container

停止容器:

$ docker stop daemon_container

查看容器详细描述:

$ docker inspect daemon_container

至此 docker 的基础操作简单介绍完毕,后面文章将进入到构建 LNMP 的过程。

上一篇下一篇

猜你喜欢

热点阅读