Docker系列之Docker容器

一、介绍

  容器是独立运行的一个或一组应用,以及它们的运行态环境。对应的,虚拟机可以理解为模拟运行的一整套操作系统和排在上面的应用。

二、容器

  2.1 启动容器

  启动容器有两种方式,一种是基于镜像新建一个容器并启动,另一个是将终止状态的容器重新启动。

  新建并启动:所需命令主要为 docker run。例如下面启动后输出一个“Hello World”,之后终止容器。

root@VM-0-15-ubuntu:~# docker run myimage /bin/echo 'Hello World!'
Hello World!

这跟本地直接执行/bin/echo 'hello world' 几乎感觉不到任何区别。

  下面的命令则启动一个bash终端,允许用户进行交互。其中 -t 选项让Docker分配一个伪终端并绑定到容器的标准输入上,-i  则让容器的标准输入保持打开。使用exit退出终端。

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

  1. 检查本地是否存在指定的镜像,不存在就从公有仓库下载
  2. 医用镜像创建并启动一个容器
  3. 分配一个文件系统,并在只读的镜像层外面挂在一层可读写层
  4. 从宿主主机配置的网络接口中桥接一个虚拟接口到容器中去
  5. 从地址池配置一个ip地址给容器
  6. 执行用户指定的应用程序
  7. 执行完毕后容器被终止

   启动已终止容器:docker start 命令,直接将一个已终止的容器启动运行。

   2.2 查看容器

docker ps // 查看所有正在运行容器
docker stop containerId // containerId 是容器的ID
docker ps -a // 查看所有容器
docker ps -a -q // 查看所有容器ID

  2.3 终止容器

docker stop 加容器ID //终止容器
docker stop $(docker ps -a -q) // stop停止所有容器

  2.4 守护态运行

  更多时候,需要让Docker容器在后台以守护态形式运行。此时,可以通过添加 -d 参数来实现。如

root@VM-0-15-ubuntu:~# docker run -d myimage
755c54ec56e25c19295b08a86aef8b2a1a65753d62b80b50dce65ca96b719403

容器启动会返回一个唯一的id。

扫描二维码关注公众号,回复: 2581994 查看本文章

   2.5 进入容器

  在使用 -d 参数时,容器启动后会进入后台。某些时候需要进入容器进行操作,有很多种方法,包括使用 docker attach命令或 nsenter工具等。如:

root@VM-0-15-ubuntu:~# docker run -idt myimage //根据镜像创建容器 
65763bc0fb47a05fe98529b5187588080f659f579e4c6c3e8044aca5c215a06a
root@VM-0-15-ubuntu:~# docker ps -a 
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
65763bc0fb47        myimage             "/bin/bash"         42 seconds ago      Up 42 seconds                                   nostalgic_mccarthy
755c54ec56e2        myimage             "/bin/bash"         6 minutes ago       Exited (0) 6 minutes ago                        kickass_engelbart
5c05efb733f5        myimage             "/bin/bash"         20 minutes ago      Exited (0) 19 minutes ago                       sharp_varahamihira
root@VM-0-15-ubuntu:~# docker attach nostalgic_mccarthy

  2.6 删除容器

  使用 docker rm 来删除一个处于终止状态的容器,如果删除运行中的容器,可以添加 -f 参数。

  docker rm $(docker ps -a -q) // remove删除所有容器。

猜你喜欢

转载自www.cnblogs.com/MicroHeart/p/9429202.html