Docker 快速上手系列(2): 容器的概念及相关操作
来源:互联网 发布:淘宝恶意买家不想发货 编辑:程序博客网 时间:2024/06/06 03:53
什么是容器
简单的说,一个镜像想要跑起来需要一个载体,这个载体就是容器,前面的文章我们也提到了,容器加载镜像后会启动一个额外的可写文件层。
我们拿VM举例,VM虚拟的是整个操作系统,然后可以在里面跑引用,容器其实运行的是一个应用或是一组应用,并提供应用所必须的运行环境
创建一个容器
Docker启动一个容器是秒级别的,这也是比VM有有事的一点,所以这里允许用户随时创建,删除,启动,切换容器,这也是体现Docker“轻”的一点
#启动一个容器有两种情况#第1种是基于镜像创建一个容器并启动docker create -ti ubuntu:14.04 #创建一个容器#第2种是启动一个“终止态”的容器docker run ubuntu:14.04 /bin/echo "hello bugall"
当我们执行docker run创建并启动时,Docker在后台运行的标准操作是哪些,这里官方文档中给出了介绍:
1.检查加载的镜像本地是否存在,如果不存在就自动从远端仓库下载2.利用指定的镜像创建一个容器3.给该容器分配一个文件系统,在该镜像上挂载一个可读可写层(应为镜像是只读的)4.从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中5.从地址池中配置一个IP地址给容器6.执行用户制定的应用程序7.执行完毕后容器被终止docker run -ti ubuntu:14.04 /bin/bash#-t 选项让docker分配一个伪终端并绑定到容器的标准输入上,#-i 则让容器的标准输入保持打开
Ctrl+d退出
守护态运行
docker run -tid ubuntu:14.04 /bin/bash#-d 让容器以保护态打开,Ctrl+d退出后容器不关闭
终止,启动容器
docker stop [-t|--time[=10]]#首先向容器发送SIGTERM信号,等待一段时间后(默认是10秒),在发送SIGKILL信号终止容器
当容器中制定的应用程序终结后,容器也会自动终止。
docker run -ti ubuntu:14.04 /bin/bash 我们Ctrl+d 终止的是/bin/bash这个应用而不是容器,为什么容器会自动退出并关闭呢?这就是因为容器启动时制定的应用程序关闭了。
有停止就有启动,我们看看怎么启动一个处于终止状态的容器
docker start CONTAINER_ID #启动处于终止态的容器docker restart CONTAINER_ID #重启一个容器
进入容器
docker run -tid ubuntu:14.04 /bin/bash
-d参数用户启动容器后无法看到容器中的信息,有些时候我们需要进入容器进行一些操作,这里介绍下进入容器的方法方式
attach 命令
注意:
官方对attach说到了这么一个特性:当多个窗口同时attach到同一个容器的时候,所有的窗口会同步显示。当一个窗口阻塞时,其它窗口也无法操作Docker 1.3版本开始就已经提供了另外一中进入容器的方法exec
docker exec -ti CONTAINER_ID /bin/bash
删除容器
docker rm [options] container [container...] -f : --force=false 强制终止并删除一个运行中的容器 -l : --link=false 删除容器的连接,但是包容起 -v : --volumes=false 删除容器挂载的数据卷#如果要删除一个运行中的容器,可以添加-f参数,docker会发送SIGKILL信号给容器,终止其应用
导入导出容器
前面的文章中提到了导入导出镜像,容器也有导入导出功能,这里的导出是指,把一个容器以文件的形式导出,无论这个容器是否处于运行状态。注意这里的导入是以镜像的形式导入的。
#导出 docker export CONTAINER > SIGN.tar #导入 docker import - ubuntu.14.04.1 #应为是以镜像的形式导入的所有可用 docker images 命令查看
- Docker 快速上手系列(2): 容器的概念及相关操作
- Docker 快速上手系列(4): 数据卷,数据卷容器的概念及相关操作
- Docker 快速上手系列(1): 镜像的概念及相关操作
- Docker 快速上手系列(3): 仓库的概念及相关操作
- Docker快速上手系列(1):镜像的概念及相关操作
- Docker 镜像、容器、仓库的概念及基本操作
- Docker 快速入门指引及相关概念知识概览
- docker 进入容器,及docker 的相关命令
- Docker 快速上手指南
- Docker容器的快速入门
- Docker Guideline Docker 上手操作
- tableExport的快速上手及快速使用
- 容器的相关操作
- SVN相关概念及操作
- Docker学习笔记(一)docker介绍及相关概念
- Docker教程:docker的概念及安装
- Linux 容器相关的2个重要概念
- Docker系列四,docker的高级操作
- 整个应用程序的象征,一个应用程序就一个UIApplication对象,使用了单例设计模式
- sql sum
- 局域网内配置服务器方法--p2p技术、端口映射、网络域名
- 通过命令行查询DELL服务器信息
- 程序编译运行时头文件或动态链接库的查找---一篇非常好的文章
- Docker 快速上手系列(2): 容器的概念及相关操作
- Framework层Android4.4锁屏流程分析
- SVN在Android Studio中的配置
- Xcode6 打包报错 ITMS-90096
- PHP中JSON的应用
- Jedis使用过程中踩过的那些坑
- C# Task的使用
- 删除双系统(Ubuntu+Win7)中的Ubuntu之后,win7不能启动的问题
- “==“与equal的比较。