container是image的一个运行实例,不同的是,它带有额外的可写文件层。
1 创建container
"docker create" //新建一个container,container创建好之后处于停止状态
"docker start" //启动一个已经创建好的container
"docker run" //等价于先create再start,那run这个过程后台又做了以下事情:
(1)检查本地是否存在指定的image,不存在就从公有仓库下载
(2)利用image创建并启动一个container
(3)分配一个文件系统,并在只读的image层外面挂载一层可读写层
(4)从宿主主机配置的网桥接口中桥接一个虚拟接口到container中去
(5)从地址池配置一个IP地址给container
(6)执行用户指定的应用程序
(7)执行完毕后container被终止
注:-t参数让docker分配一个伪终端(pseudo-tty)并绑定到container的标准输入上,-i参数则让container的标准输入保持打开
"docker run -d" //container在后台以守护态(daemonized)形式运行,container启动后会返回一个唯一的ID
"docker ps" //查看运行的container信息
"docker ps -a" //查看处于终止状态的container
"docker logs ID" //获取container的输出信息
2 终止启动container
"docker stop ID" //通过container ID终止container
"docker start ID" //启动container
"docker ps -a -q" //查看处于终止状态的container ID信息,处于终止状态的container可以通过start命令启动
"docker restart ID" //终止并重新运行container
3 进入container
使用了-d 参数后,container启动后进入后台运行,我们无法直接看到容器中的信息,可以用exec命令进入container,使用如下:
4 删除container
"docker rm [OPTIONS] CONTAINER" //选项:-f(--force),强行终止并删除一个运行中的container;-l(--link)删除container的连接,但是保留container;-v(--volumes),删除container挂载的数据卷
"docker rm ID" //删除终止状态的container,如果container正在运行,可以添加-f参数强行删除(docker会先发送SIGKILL信号给container,终止其中的应用)