通过上两节的学习http://blog.csdn.net/minimicall/article/details/40119177 和http://blog.csdn.net/minimicall/article/details/40108305 相信大家已经把docker环境已经搭建完成,这一节,简单学习docker怎么用。

Hello world

计算机的每个新事物似乎都是从hello world開始。

root@iZ28ikebrg6Z:~# docker run ubuntu:14.04 /bin/echo 'hello world'
hello world
root@iZ28ikebrg6Z:~# docker run ubuntu /bin/echo 'hello world'
hello world

我们之前执行过docker pull ubuntu, 所以我们从远端server拉取了不少ubuntu镜像,这些镜像已经存在在本地。不会再去远端server拉取,假设你执行的是本地没有的。docker会自己主动的去远端库查询和拉取。比如 :

root@iZ28ikebrg6Z:~# docker run centos /bin/echo 'hello world'
Unable to find image 'centos' locally
Pulling repository centos

上述ubuntu是一个镜像。作为一个容器,然后我们进一步执行容器内的APP,即/bin/echo程序。而当执行完echo指令之后,容器内的程序停止了,容器本身也就停止了。记住这个hello world 涉及到点概念。docker ,image, container ,application 。你懂了么?

An Interactive Container

一个能够交互的容器。我们输入例如以下命令:
root@iZ28ikebrg6Z:~# docker run -i -t ubuntu:14.04 /bin/bash
root@95d20e5442f9:/#

多了两个參数。一个是 -t 。表示给我们的容器tty,终端。

一个是-i 表示能够interactive。能够交互。细心看结果,上面一行还在我们的阿里云机子上iZ28ikebrg6z下一行已经进入到docker ubuntu:14.04镜像映射出的容器里面了,95d2e5442f9中。

你能够在这个bash里面运行一些操作。

root@95d20e5442f9:/# pwd
/
root@95d20e5442f9:/# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var

假设你想退出这个bash,那么能够执行:

root@95d20e5442f9:/# exit
exit
root@iZ28ikebrg6Z:~#

这样即退出了bash,当然容器也就退出了。

A Daemonized Hello world

守候进程化,即后台化。

运行例如以下命令:

root@iZ28ikebrg6Z:~# docker run -d ubuntu:14.04 /bin/sh -c "while true; do echo hello world; sleep 1; done"
d8eca97420317ae9f2fcd7655ab5c16c964d60f7bd644a8726ce473b075852d8

-d 选项就是告诉docker。这个容器须要后台化。

可是。为什么输出是一串看不懂的字符串。而不是每秒输出一次hello world呢?

这一长串东西叫做容器的ID,我们能够通过它使用容器。

root@iZ28ikebrg6Z:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d8eca9742031 ubuntu:14.04 "/bin/sh -c 'while t 3 minutes ago Up 3 minutes mad_jones

看到了吧,我们刚刚那个容器被列出来了。最后一列是名字,什么意思,docker都是一层层的添加的,详细后面细说。你运行一条命令,对你使用的镜像是没有影响的。可是你运行了毕竟是有数据或者其它的东西发生了变化。这个时候,docker给你自己主动取个名字(你能够指定名字),然后通过这个名字,就像一个新的镜像一样。后面你能够保存它。

打印日志:

root@iZ28ikebrg6Z:~# docker logs mad_jones
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world

停止任务:

root@iZ28ikebrg6Z:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d8eca9742031 ubuntu:14.04 "/bin/sh -c 'while t 43 minutes ago Up 43 minutes mad_jones
root@iZ28ikebrg6Z:~# docker stop mad_jones
mad_jones
root@iZ28ikebrg6Z:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
root@iZ28ikebrg6Z:~#

好了,hello world就到次结束。兴许推出更加高级的教程。

阿里云部署Docker(3)----指令学习的更多相关文章

  1. 阿里云部署Docker(5)----管理和公布您的镜像

    出到这节,我在百度搜索了一下"阿里云部署Docker",突然发现怎么会有人跟我写的一样呢?哦,原来是其它博客系统的爬虫来抓取,然后也不会写转载自什么什么的.所以,我最终明确为什么那 ...

  2. 阿里云部署Docker(7)----将容器连接起来

    路遥知马力.日久见人心.恩. 该坚持的还是要坚持. 今天看到一个迅雷的师弟去了阿里,祝福他,哎,尽管老是被人家捧着叫大牛.我说不定通过不了人家的面试呢.哎,心有惭愧. 本文为本人原创,转载请表明来源: ...

  3. 阿里云部署Docker(2)

    之前有一篇文章讲过在阿里云中安装Docker,相对来说那个是安装.可是安装完之后我们通常会碰到问题. 今天我给大家记录一下我的新的解决过程. 环境还是ubuntu12.04.如果我们已经把内核升级到了 ...

  4. 阿里云部署Docker(4)----容器的使用

    通过上一节的学习,我们知道怎样执行docker容器,我们执行了一个普通的,一个后台的,我们还学习了几个指令: docker ps - Lists containers. docker logs - S ...

  5. 阿里云部署Docker(9)----Dockerfile脚本定制镜像

    本文为原创文章.转载需注明转自:http://blog.csdn.net/minimicall? viewmode=contents 技术爱好者都是比較懒的.而docker又是开发人员支持起来的.所以 ...

  6. 阿里云部署Docker(6)----解决删除<none>镜像问题

    转载请注明来源,本博客原创作者为:http://blog.csdn.net/minimicall?viewmode=contents 在Docker使用中,常常会碰到删除镜像不成功.反而让镜像变成了& ...

  7. 阿里云部署Docker(8)----安装和使用redmine

    安装redmine对过程进行管理. 须要说明的是:当你在docker images的时候,会说没连接到xxxx的时候,并且会提示用"docker -d".事实上这仅仅是把docke ...

  8. 阿里云服务器安装Docker并部署nginx、jdk、redis、mysql

    阿里云服务器安装Docker并部署nginx.jdk.redis.mysql 一.安装Docker 1.安装Docker的依赖库 yum install -y yum-utils device-map ...

  9. 阿里云-部署-服务-Docker

    目录 ♫ MusicPlayer Naiveboom - 比较安全 个人阿里云部署的小服务,欢迎使用,服务器资源有限,如果遇到卡顿还请谅解~ 索引: 在线音乐播放器 阅后即焚 ♫ MusicPlaye ...

随机推荐

  1. weex入门(一)

    emmmm其实没有接触过weex ,了解一番发现有很多坑,有很多基于weex改良后的框架,比如weexplus等等,基本不用踩多少坑.经过几天的深思熟虑我觉得还是去踩坑,毕竟踩完坑才能真正的了解嘛 w ...

  2. @Accessors

    @Accessors 作用:存取器,用于配置getter和setter方法的生成结果 三个属性:fluent.chain.prefix 1.fluent:流畅的,设置为true,getter和sett ...

  3. mysql 查看单个表每个索引的大小

    /*单个表每个索引的大小*/ SELECT sum(stat_value) pages, table_name part, index_name, concat(,),'M',' rows') * @ ...

  4. 洛谷 P2355 团体操队形

    P2355 团体操队形 题目背景 X中学要团体操比赛了哦.队形该怎样排呢? 题目描述 有n(n<=100000)个团体操队员编号分别为1~n,参加运动会开幕式的团体操表演.其基本队形(分连续队形 ...

  5. EBS OAF开发中实体对象和视图对象的属性设置器

    EBS OAF开发中实体对象和视图对象的属性设置器 (版权声明.本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处:否则请与本人联系,违者必究) 源文: Home > Oracle ...

  6. javaWeb自己定义可排序过滤器注解,解决Servlet3.0下@WebFilter注解无法排序问题

    com.lwl.anno 凝视类型 @WebFilterSort 须要用的jar包 http://download.csdn.net/detail/u013202238/9431110 用该注解注冊的 ...

  7. css3中关于伪类的使用

    目标: css中after伪类,last-child伪类的使用.以及部分css3的属性. 过程: 在制作导航时.常常会遇到在每个li后面加入一个切割符号,到最后一个元素的时候,切割符就会去掉的一种效果 ...

  8. zoj 1119 / poj 1523 SPF (典型例题 求割点 Tarjan 算法)

    poj : http://poj.org/problem?id=1523 如果无向图中一个点 u 为割点 则u 或者是具有两个及以上子女的深度优先生成树的根,或者虽然不是一个根,但是它有一个子女 w, ...

  9. js中常用的对象—Array的属性和方法

    今天说一下,js中常用的内置对象——Array对象 Array常用属性: length prototype :给系统对象添加属性和方法 Array常用方法: Array.prototype.sum = ...

  10. Can't access RabbitMQ web management interface after fresh install

    http://stackoverflow.com/questions/22850546/cant-access-rabbitmq-web-management-interface-after-fres ...