上一篇博客学习了下镜像,今天来学习容器。容器类似一个手机中的沙盒环境,用来运行app实例。和镜像一样也是对容器的创建、删除、导出等。

由于我买的参考书中的例子好多都是基于linux的,所以我将docker切换到Linux容器下,然后run了一个ubuntu镜像。

一.新建与启动容器

1.创建容器使用create,还是老方法,通过help来查看。create的options有好多选项,这里只是入门,大致的学一下,不一一细讲。以后有机会了再说,毕竟这是对docker的第一遍学习。

下面我使用create创建容器,镜像是ubuntu.返回容器id。通过ps可以看到一个状态是created的容器,此时的容器并没有启动,启动的话需要使用另外一个命令start。首先看下格式及参数。

此时再通过ps查看容器发现它的状态已经变成up了。

2.使用run新建并启动容器

上面是先使用create创建一个容器然后使用start启动它,其实可以直接使用run来新建并启动容器。当利用docker run来创建并启动容器时,Docker在后台运行的标准操作包括:

1.检查本地是否存在指定的镜像,不存在就从公有仓库下载。

2.利用镜像创建一个容器,并启动。

3.分配一个文件系统给容器,并在只读的镜像层外面挂载一层可读写层。

4.从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中

5.从网桥的地址池配置一个IP地址给容器

6.执行用户指定的应用程序。

7.执行完毕后容器自动终止。

run的help和create的差不多。

二、守护态运行

有时候需要让docker容器在后台以守护态形式运行,可以通过-d来实现。如下图开启一个ubuntu容器启动bin/sh下脚本 执行后面的脚本语句,让它每隔10毫秒输出一个helloworld.然后可以通过logs来查看它的输出,可以看到第一次输出了两个,第二次输出了三个。

三、终止容器

上面的容器一直在后台运行,可以通过ps来查看它的状态

如果想终止它,可以使用stop。下图是stop的格式和参数。

这里将上面的容器终止掉,可以使用ps再次查看下它的状态。可以看到状态已经是退出。

四、进入容器

启动容器之后就是进入容器,对容器进行操作,操作有两个命令。

1.attach命令

还是从help开始,这里先启动ubuntu

下图是使用attach进入容器,先点击了下回车,然后使用echo输出abc.最后使用ctrl p  ctrl q退出

2.exec命令

还是看help

使用exec命令进入ubuntu的bin/bash下然后输出cuiyw最后ctrl p ctrl q退出

五、容器的导入导出

镜像有导入导出容器也有导入导出。

1.export导出

还是help,和镜像的类似,也使用-o,这里将ubuntu容器导出到E:\docker\test_ubuntu.tar,完成之后就会在文件夹下看到

2.import导入

还是help,然后将上面导出的再导进来

此时再查看镜像时就会出现cuiyw/ubuntu的镜像

3.load import的区别

load是导入镜像存储文件到本地镜像库,import是导入一个容器快照到本地镜像库。区别是容器快照文件将丢弃所有的历史记录和元数据信息,仅仅保存容器当前的快照状态,镜像文件将保存完整记录,体积更大,容器快照导入时可以重新指定标签等元数据信息。

Docker入门之三容器的更多相关文章

  1. docker入门——管理容器

    除了交互式的容器(interactive container),我们也可以创建长期运行的容器.守护式容器(daemonized container)没有交互式会话,非常适合运行应用程序和服务.大多数时 ...

  2. docker 入门2 - 容器 【翻译】

    入门,第 2 部分:容器 先决条件 安装的 Docker 版本是 1.13 及以上. 读完 第一部分 用下面的命令快速测试你的环境是否完备: docker run hello-world 概述 现在开 ...

  3. docker入门(二)容器与镜像的理解

    10张图带你深入理解Docker容器和镜像 申明:此篇文章是转载的(原文地址http://dockone.io/article/783),今天意外发现已经有人转载了(复制了),希望大家关注原创 原本打 ...

  4. docker入门(二)容器与镜像的关系

    [编者的话]本文用图文并茂的方式介绍了容器.镜像的区别和Docker每个命令后面的技术细节,能够很好的帮助读者深入理解Docker. 这篇文章希望能够帮助读者深入理解Docker的命令,还有容器(co ...

  5. Docker 入门:容器

    容器看着像机器,实际是进程,是一个运行时程序. 要操作一个 Docker 容器,只需要执行 docker container 命令. 可以通过 help 查看 run 运行容器 基础使用: docke ...

  6. Docker入门(三):容器(Containers)

    这个<Docker入门系列>文档,是根据Docker官网(https://docs.docker.com)的帮助文档大致翻译而成.主要是作为个人学习记录.有错误的地方,Robin欢迎大家指 ...

  7. Docker入门(七):部署app

    这个<Docker入门系列>文档,是根据Docker官网(https://docs.docker.com)的帮助文档大致翻译而成.主要是作为个人学习记录.有错误的地方,Robin欢迎大家指 ...

  8. Docker入门(六):Stacks

    这个<Docker入门系列>文档,是根据Docker官网(https://docs.docker.com)的帮助文档大致翻译而成.主要是作为个人学习记录.有错误的地方,Robin欢迎大家指 ...

  9. Docker入门(五):Swarms

    这个<Docker入门系列>文档,是根据Docker官网(https://docs.docker.com)的帮助文档大致翻译而成.主要是作为个人学习记录.有错误的地方,Robin欢迎大家指 ...

随机推荐

  1. Composer简介及使用实例

    1.PHP-FIG 官网:http://www.php-fig.org/ php编码规范: 本文档是PHP互操作性框架制定小组(PHP-FIG :PHP Framework Interoperabil ...

  2. 浅析HTTP协议的请求报文和响应报文

    1.HTTP协议与报文简介  HTTP(hypertext transport protocol),即超文本传输协议.这个协议详细规定了浏览器和万维网服务器之间互相通信的规则. 而客户端与服务端通信时 ...

  3. 为测试赋能,腾讯WeTest探索手游AI自动化测试之路

    作者:周大军/孙大伟, 腾讯后台开发 高级工程师 商业转载请联系腾讯WeTest获得授权,非商业转载请注明出处.  WeTest导读 做好自动化测试从来不件容易的事情,更何况是手游的自动化测试,相比传 ...

  4. JSON取值(key是中文或者数字)方式详解

    JSON取值(key是中文或者数字)方式详解 先准备一个json对象用于演示 var json = {'name':'zhangsan', '年龄':23, 404:'你可能迷路了'}; 使用JS中w ...

  5. jq获取图片的原始尺寸,自适应布局

    原理: each()遍历,width().height()获取宽高, load() 注意: 由于页面加载完了,但图片不一定加载完了,所以直接通过 $("img").width(), ...

  6. chrome开发工具指南(五)

    Main Menu Click More  to open the Main Menu. Settings To open Settings, do one of the following: Pre ...

  7. java 多线程Callable和Runable执行顺序问题详解

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt125 毫无疑问 Runnable会进行异步执行,此处不多说,主要说明Call ...

  8. startsWith和endWith方法

    startsWith(): 例如:if(a.startsWith(b)) //判断字符串a 是不是以字符串b开头. 语法1 public boolean startsWith(String prefi ...

  9. poj 3648 2-SAT建图+topsort输出结果

    其实2-SAT类型题目的类型比较明确,基本模型差不多是对于n组对称的点,通过给出的限制条件建图连边,然后通过缩点和判断冲突来解决问题.要注意的是在topsort输出结果的时候,缩点后建图需要反向连边, ...

  10. NHibernate教程(18)--对象状态

    本节内容 引入 对象状态 对象状态转换 结语 引入 在程序运行过程中使用对象的方式对数据库进行操作,这必然会产生一系列的持久化类的实例对象.这些对象可能是刚刚创建并准备存储的,也可能是从数据库中查询的 ...