Docker--在Docker中运行应用


一个交互式的容器

既然在Docker提供的是一个容器,底层支撑着一个基本的操作系统环境,那我们就可以通过Docker进入到容器内部与系统进行交互。

据我理解:Docker中的镜像就是一堆文件的集合,并不是像VM中的一个操作系统。镜像可以简单理解为是一堆可执行文件放在一个空的Image中。

就比如写了个helloWord的程序,经过静态编译后放在空的Image中便成了一个镜像,这个Image的大小就是二进制文件的大小。如果不是静态编译的话,就需要把相应的链接库放到镜像中相应的位置,这样才能使动态编译的程序能够成功调用链接库使得程序能够正确运行,否则会提示找不到文件。

Docker官方提供的ubuntu等基础镜像,就是把依赖的文件放在正确的位置,从而使得大部分程序可以正常运行。这和VM的镜像是完全不同的概念。

Docker之上运行的每个容器内的进程都是运行在宿主物理机上的,无论容器内的镜像是ubuntu还是centos都是运行在主机内核上的(容器内没有自己的内核),这样的话就会出现如果宿主主机内核不能满足某种特性那么容器内依赖此特性的应用程序就无法运行的情况。

让我们再次运行docker run,指定新的命令来运行容器。

➜  ~ docker run -t -i ubuntu:14.04 /bin/bash
root@58e2224c2e52:/#

我们能够看到命令行的提示符出现了差别,这就说明我们进入到了容器内部的镜像内。

在这里,我们制定了参数:-t -i分别意味着:

-t表示在容器内制定一个伪终端

-i表示允许我们对容器内的STDIN进行交互。

接着我们指定了在容器内运行的命令/bin/bash在容器内启动bash(因为终端默认运行bash所以此参数不需要也行)。

所以容器启动后便会进入新的终端,出现新的提示符。

➜  ~ docker run -t -i ubuntu:14.04
root@7cb295200f44:/# ls
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr
root@7cb295200f44:/# pwd
/
root@7cb295200f44:/# ls
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr
root@7cb295200f44:/# cd /home/
root@7cb295200f44:/home# ls
root@7cb295200f44:/home# cd
root@7cb295200f44:~#

熟悉的linux味道~

当需要退出容器的时候,输入命令exit便可以退出。一旦退出容器,容器便会停止。

Docker--在Docker中运行应用的更多相关文章

  1. 在Docker for Windows中运行GUI程序

    Docker运行GUI原理 Docker目前大多应用在服务器领域,那么在Docker中可以运行GUI程序吗?怀着好奇心google了一番,还真有人写了一篇文章 running-gui-applicat ...

  2. 在Spring Boot中使用Docker在测试中进行高级功能测试

    最近又学到了很多新知识,感谢优锐课老师细致地讲解,这篇博客记录下自己所学所想. 想更多地了解Spring Boot项目中的功能测试吗?这篇文章带你了解有关在测试中使用Docker容器的更多信息. 本文 ...

  3. docker笔记--docker 各系统安装

    在线安装 Docker 在 CentOS/RHEL 中安装 Docker 在终端中运行下面的命令安装 Docker. sudo yum install -y yum-utils sudo yum-co ...

  4. 在docker中运行ASP.NET Core Web API应用程序

    本文是一篇指导快速演练的文章,将介绍在docker中运行一个ASP.NET Core Web API应用程序的基本步骤,在介绍的过程中,也会对docker的使用进行一些简单的描述.对于.NET Cor ...

  5. 在Linux和Windows的Docker容器中运行ASP.NET Core

    (此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 译者序:其实过去这周我都在研究这方面的内容,结果周末有事没有来得及总结为文章,Scott H ...

  6. .NET Core Web 应用部署到 Docker 中运行

    环境介绍 : 虚拟机:VirtualBox 5.1.6 系 统:Ubuntu 16.04.1 LTS 系统准备完成后可以使用 sudo apt-get udpate 和 sudo apt-get up ...

  7. 在Docker中运行web应用

    启动一个简单的web 应用 使用社区提供的模板,启动一个简单的web应用,熟悉下各种Docker命令的使用: # docker run -d -P training/webapp python app ...

  8. Docker容器中运行ASP.NET Core

    在Linux和Windows的Docker容器中运行ASP.NET Core 译者序:其实过去这周我都在研究这方面的内容,结果周末有事没有来得及总结为文章,Scott Hanselman就捷足先登了. ...

  9. docker中运行ASP.NET Core Web API

    在docker中运行ASP.NET Core Web API应用程序 本文是一篇指导快速演练的文章,将介绍在docker中运行一个ASP.NET Core Web API应用程序的基本步骤,在介绍的过 ...

  10. 在Docker中运行torch版的neural style

    相关的代码都在Github上,请参见我的Github,https://github.com/lijingpeng/deep-learning-notes 敬请多多关注哈~~~ 在Docker中运行to ...

随机推荐

  1. 设计模式(三):“花瓶+鲜花”中的装饰者模式(Decorator Pattern)

    在前两篇博客中详细的介绍了"策略模式"和“观察者模式”,今天我们就通过花瓶与鲜花的例子来类比一下“装饰模式”(Decorator Pattern).在“装饰模式”中很好的提现了开放 ...

  2. DDD 领域驱动设计-如何完善 Domain Model(领域模型)?

    上一篇:<DDD 领域驱动设计-如何 DDD?> 开源地址:https://github.com/yuezhongxin/CNBlogs.Apply.Sample(代码已更新) 阅读目录: ...

  3. 不太被人提起的%%lockres%%的妙用

    %%lockres%% 这个值似乎很少被大家提到,甚至微软在官方文档中. 它返回是一个Hash Value,看乎这个值没什么用. 后来在实践也有它的妙用之处,比如在出现性能问题如LOCK时,一般先通过 ...

  4. Vertica集群单节点宕机恢复方法

    Vertica集群单节点宕机恢复方法 第一种方法: 直接通过admintools -> 5 Restart Vertica on Host 第二种方法: 若第一种方法无法恢复,则清空宕机节点的c ...

  5. 读书笔记--SQL必知必会--建立练习环境

    书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL in 10 Minutes - Fourth Edition> MyS ...

  6. Http压测工具wrk使用指南

    用过了很多压测工具,却一直没找到中意的那款.最近试了wrk感觉不错,写下这份使用指南给自己备忘用,如果能帮到你,那也很好. 安装 wrk支持大多数类UNIX系统,不支持windows.需要操作系统支持 ...

  7. css3 transition animation nick

    时光转眼即逝,又到周六了,今天写点某部分人看不起的css玩玩! 转换 转换属性transform: 浏览器前缀: -webkit-transform;-o-transform;-moz-transfo ...

  8. MySQL时间分组查询

    表TESTER 字段:id -- INT    date  -- TIMESTAMP 1.如何按年.月.日分组查询? select DATE_FORMAT(date,'%Y-%m-%d') time, ...

  9. Xshell显示中文乱码问题

    [文件]–>[打开]–>在打开的session中选择连接的那个,点击[属性] -> [终端], 编码选择为:Unicode(UTF-8),然后重新连接服务器即可.也可以在Xshell ...

  10. TYPESDK手游聚合SDK服务端设计思路与架构之三:流程优化之订单保存与通知

    经过前两篇文字的分析与设计,我们已经可以搭建出一个能够支持多游戏多渠道的聚合SDK服务端,但这只是理想化状态下的一个简化模型.如果接入渠道的逻辑都是按照理想化的简化过程来构建,那么对于支付的请求,我们 ...