上一篇博客学习了下镜像,今天来学习容器。容器类似一个手机中的沙盒环境,用来运行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. 十条最有效的PCB设计黄金法则

    十条最有效的PCB设计黄金法则 尽管目前半导体集成度越来越高,许多应用也都有随时可用的片上系统,同时许多功能强大且开箱即用的开发板也越来越可轻松获取,但许多使用案例中电子产品的应用仍然需要使用定制PC ...

  2. 支付宝小程序PHP全栈开发--前端样式的设计.acss样式详解

    关于.acss文件 在视频中已经说过了,小程序的设计思想和原生app的设计思想颇为相似,基本的应用单元为页面.当然对于一个页面来说每一个元素的放置位置在哪儿以及显示成什么样子这个是由样式来决定的.我们 ...

  3. MySQL(四)之MySQL数据类型

    一.数据类型概述 MySQL的数据类型有大概可以分为5种,分别是 整数类型.浮点数类型和定点数类型.日期和时间类型.字符串类型.二进制类型.现在可以来看看你对这5种类型的熟悉程度,哪个看起来懵逼了,那 ...

  4. IOS学习【xcode 7新特性url链接】

    由于xcode7的更新,在访问http链接的时候会输出错误信息 The resource could not be loaded because the App Transport Security ...

  5. Android学习记录:获取联系人

    在AndroidManifest中申请读取联系人的权限 <uses-permission android:name = "android.permission.READ_CONTACT ...

  6. jdk源码研究1-HashMap

    今天开始,研读下jdk的常用类的一些源码,下面是jdk中HashMap的研究.诚然,网上已经很多这方面的总结了,但是,个人只是想单纯地把自己的理解过程进行记录,大牛们就绕路吧,当然,欢迎扔砖头.下面是 ...

  7. 文件系统的几种类型:ext3, swap, RAID, LVM

    分类: 架构设计与优化 1.  ext3 在异常断电或系统崩溃(不洁关机, unclean system shutdown  ).每个已挂载ext2文件系统计算机必须使用e2fsck程序来检查其一致性 ...

  8. 转:【深入Java虚拟机】之五:多态性实现机制——静态分派与动态分派

    转载请注明出处:http://blog.csdn.net/ns_code/article/details/17965867   方法解析 Class文件的编译过程中不包含传统编译中的连接步骤,一切方法 ...

  9. 第一周作业.四则运算生成器(基于python)

    题目 从<构建之法>第一章的 "程序" 例子出发,像阿超那样,花二十分钟写一个能自动生成小学四则运算题目的命令行 "软件",满足以下需求: 除了整数 ...

  10. 201521123077 《Java程序设计》第6周学习总结

    1. 本周学习总结 1.1 向对象思想总结 1.2 使用常规方法总结其他上课内容 Swing一些常用组件的基本用法 Object类的clone及hashcode方法 2. 书面作业 1. clone方 ...