容器是镜像的一个运行实例,如果认为虚拟机是模拟运行的一整套操作系统和跑在上面的应用,那么,Docker容器就是鼓励运行的一个或一组应用,以及它们的必须运行环境。
创建容器
使用 docker create命令
创建并启动容器
启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一种是将在终止状态的容器重新启动。所需要的命令主要为docker run,等价于先执行docker create 命令,在执行docker start 命令
下面的命令输出一个 hello world,之后容器自动终止:
当使用docker run来创建并启动容器时,Docker在后台运行的标准操作包括:
- 检查本地是否存在指定的镜像,不存在就从公有仓库下载。
- 使用镜像创建并启动一个容器。
- 分配一个文件系统,并在只读的镜像层外面挂载一层可读写层。
- 从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中。
- 从地址池配置一个IP地址给容器。
启动一个bash终端,允许用户进行交互:
docker run -t -i ubuntu /bin/bash
-t 选项,让docker分配一个伪终端,并绑定到容器的标准输入上。
-i 选项,让容器的标准输入保持打开。
用户可以按Ctrl+d或输入exit命令退出容器。
守护态运行
更多的时候,需要让Docker容器在后台以守护态(Daemonized)形式运行。用户可以通过添加-d参数来实现。
容器启动后会返回一个唯一的ID,可以通过docker ps 命令来查看容器信息:
终止容器
使用 docker stop 来终止一个运行中的容器,命令的格式为 docker stop [-t|–time[=10]]。
首先向容器发送信号SIGTERM信号,等待一个段时间后(默认为10秒),再发送SIGKILL信号终止容器。
使用 docker ps -a -q 命令看到处于终止状态的容器ID:
处于终止状态的容器,通过docker start命令重新启动
docker restart 命令会将一个运行状态的容器终止,然后再重新启动它