Hello World

Docker允许在容器内运行应用程序。
docker run:在容器内运行一个应用程序。

[root@localhost ~]# docker run ubuntu:15.10 /bin/echo "Hello world"


参数解析:

  • docker:Docker的二进制执行文件。
  • run:与docker组合来运行一个容器。
  • ubuntu:15.10:指定要运行的镜像,Docker首先从本地主机上查找镜像是否存在,如果不存在,Docker就会从镜像仓库Docker Hub下载公共镜像。
  • /bin/echo “Hello world”:在启动的容器里执行的命令。

以上命令的意思为:Docker以ubuntu:15.10镜像创建一个新容器,在容器里执行/bin/echo “Hello world”。

交互式容器

通过docker的参数-i,-t,让docker的容器实现对话:

[root@localhost ~]# docker run -i -t ubuntu:15.10 /bin/bash
root@170eb90f6ea6:/#

参数解析:

  • -t:在新容器内指定一个伪终端或终端。
  • -i:允许你对容器内的标准输入进行交互。

root@170eb90f6ea6:/#,此时我们进入了一个ubuntu15.10系统的容器。

在容器中运行命令cat /proc/versionls分别查看当前系统的版本信息和当前目录下的文件列表。

[root@localhost ~]# docker run -i -t ubuntu:15.10 /bin/bash
root@170eb90f6ea6:/# cat /proc/version
Linux version 3.10.0-862.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC) ) #1 SMP Fri Apr 20 16:44:24 UTC 2018
root@170eb90f6ea6:/# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var


可以通过运行exit命令或者使用CTRL+D来退出容器。

root@170eb90f6ea6:/# exit
exit
[root@localhost ~]#

启动容器(后台模式)

使用以下命令创建一个以进程方式运行的容器

[root@localhost ~]# docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
b72f4ae245a90a9af586c52fea0213fb72a6cabe5bd197da8460117073bf87d0

b72f4ae245a90a9af586c52fea0213fb72a6cabe5bd197da8460117073bf87d0这个长字符串叫做容器ID,对每个容器来说都是唯一的,我们可以通过容器ID来查看对应的容器发生了什么。

首先,我们需要确认容器有在运行,可以通过docker ps来查看:

[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
b72f4ae245a9        ubuntu:15.10        "/bin/sh -c 'while t…"   3 minutes ago       Up 3 minutes                            dreamy_babbage

详情介绍:
CONTAINER ID: 容器ID。
IMAGE: 使用的镜像。
COMMAND: 启动容器时运行的命令。
CREATER: 容器的创建时间。
STATUS: 容器状态。

状体有7种:

  • created:已创建
  • restarting:重启中
  • running或up:运行中
  • removing:迁移中
  • paused:暂停
  • exited:停止
  • dead:死亡

PORTS: 容器的端口信息和使用的连接类型(tcp\udp)。
NAMES: 自动分配的容器名称。

在宿主主机内使用docker logs命令,查看容器内的标准输出:

[root@localhost ~]# docker logs b72f4ae245a9
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world
[root@localhost ~]# docker logs dreamy_babbage
hello world
hello world
hello world
hello world
hello world
hello world
hello world

停止容器

docker stop:停止容器。

[root@localhost ~]# docker stop b72f4ae245a9
b72f4ae245a9
[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

通过docker ps查看,容器已停止。

成长之路:Docker(三)使用相关推荐

  1. 十年互联网项目实战经验分享:项目经理成长之路的三个层次

    网易项目管理专家雷蓓蓓老师,结合十年互联网项目摸爬滚打的实战经验,首次披露了从业多年来的诸多干货.项目经理要想在升职加薪路上走的更顺,核心要解决的是什么呢?就是怎么样去提升自己的核心竞争力,也就是升& ...

  2. 从0到1:CTFer成长之路docker环境搭建

    1. 安装 docker 使用官方安装脚本安装 sudo curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 也可以使 ...

  3. CISSP的成长之路(三):怎样获得CISSP认证

    在51CTO安全频道特别策划的CISSP的成长之路系列的上一篇< 为什么要获得CISSP认证>里,J0ker介绍了为什么要获得CISSP认证和CISSP的职业发展情况.那需要通过怎样的流程 ...

  4. python大神的成长之路普通话三分钟_我的成长之路普通话考试说话三分钟范文

    我的成长之路普通话考试说话三分钟范文 时间一颗甜蜜的糖果,越吃越觉得有味道.时间是一种药,有点 苦,有点涩.时间是一块木糖醇,偶尔会让你清醒.我的人生就像 糖果,药,木糖醇.正因为它们,我的人生成长路 ...

  5. python大神的成长之路普通话三分钟_三分钟普通话说话30篇-我的成长之路 - 希赛网...

    我的成长之路 每一个人都有自己的成长之路,每个人的成长都有她们自己的故事.我的成长也和大多数的孩子一样是在学习中度过的.有人说,成长是痛苦的.因为它把一个人从天真无邪.无忧无虑的世界,带入了一个充满世 ...

  6. 十年风雨,一个普通程序员的成长之路(三)铜陵:大雪与加班

    大雪.铜陵 在神码,我的每一年都是阶梯式的成长. -> 2012 程序员 -> 2013 开发组长 -> 2014 兼需求经理 -> 2015 开发经理 -> 2016 ...

  7. 系统架构师成长之路(三)

     在当前的互联网领域,大数据的应用已经十分广泛,尤其以企业为主,企业成为大数据应用的主体.大数据真能改变企业的运作方式吗?答案毋庸置疑是肯定的.随着企业开始利用大数据,我们每天都会看到大数据新的奇妙的 ...

  8. python成长之路第三篇(2)_正则表达式

    打个广告欢迎加入linux,python资源分享群群号:478616847 目录: 1.什么是正则表达式,python中得正则简介 2.re模块的内容 3.小练习 一.什么是正则表达式(re) 正则表 ...

  9. 我的Python成长之路---第三天---Python基础(13)---2016年1月16日(雾霾)

    五.Python的常用的内置函数 Python为我们准备了大量的内置函数,如下图所示 这里我们只讨论红框内的内置函数 abs(x) 返回一个数的绝对值(模),参数可以是真说或浮点数 >>& ...

  10. 我的Python成长之路---第三天---Python基础(9)---2016年1月16日(雾霾)

    一.集合 set和dict类似,也是一组key的集合,但不存储value.由于key不能重复,所以,在set中,没有重复的key. 集合和我们数学中集合的概念是一样的,也有交集,并集,差集,对称差集等 ...

最新文章

  1. 成功解决 class 'AttributeError' : 'Editor' object has no attribute '_Editor__markerMap'
  2. ABAP modify screen:修改屏幕,实现隐藏、禁止输入字段
  3. NumPy之:使用genfromtxt导入数据
  4. Java中随机数的原理,以及使用时的注意点
  5. java桥_java 泛型--桥方法
  6. CCF202104-2 邻域均值
  7. 将现有MFC应用程序迁移到BCGControlBar VC界面库中
  8. 121. Best Time to Buy and Sell Stock 题解
  9. gstat | 空间插值(三)——克里金插值之泛克里金和简单克里金
  10. linux磁盘链路故障
  11. 有效利用番茄工作法提高效率--XorTime的使用方法
  12. 如何查找涉密文件_企业如何处理涉密信息文件?这四点必知
  13. 使用hexo搭建github个人博客网站
  14. 电脑芯片和服务器芯片,王思聪的服务器和我们的电脑有什么区别?
  15. Java集合Collection之实现原理解读(LinkedList)
  16. 数字信号处理技术在各个领域(电信、音频、图像、雷达、声呐等)的用途
  17. GoEasy使用详解
  18. 大佬们不会告诉你的史上最全的Java进阶书籍推荐
  19. 1)华为手机使用电脑批量管理联系人 - 2)华为云空间联系人同步到手机 - 3)华为手机导入联系人列表
  20. Arun Gupta通过将HTML5与Java EE 7拥抱来提高生产力

热门文章

  1. 对酒店房间自助售货机的支付漏洞挖掘
  2. linux adduser命令路径,Linux adduser命令
  3. 【TOTP】TOTP算法(基于时间的一次性动态密码)原理介绍 简要逻辑实现说明
  4. 外部数据挖掘与分析工具Armory介绍
  5. MobaXterm无法调出图形界面
  6. Esp8266 --深入分析官方json解析源码及如何使用json接口解析心知天气
  7. Nyist125 盗梦空间
  8. Ubuntu16.04+Anaconda+Geany配置
  9. pycharm启动报错
  10. 三分钟极速体验:Java版人脸检测