Docker容器

Docker容器

1. 容器基本操作

启动容器:

1.docker run IMAGE [COMMAND] [ARG...]
2.

演示:

1.[KANO@kelvin ~]$ docker run centos echo 'hello world'
2.hello world
3.

启动交互式容器:

1.docker run -i -t IMAGE /bin/bash
2. -i --interactive=true|false 默认是false
3. -t --tty=true|false 默认是false

演示:

1.[KANO@kelvin ~]$ docker run -i -t centos /bin/bash
2.[root@1b2ad927e99b /]# ps -ef
3.UID PID PPID C STIME TTY TIME CMD
4.root 1 0 0 08:27 ? 00:00:00 /bin/bash
5.root 15 1 0 08:28 ? 00:00:00 ps -ef
6.[root@1b2ad927e99b /]# exit
7.exit
8.[KANO@kelvin ~]$
9.

这样我们就进入了刚刚启动的交互式容器中,然后退出交互式容器

查看容器:

1.docker ps [-a] [-l]
2. -a :列出所有容器
3. -l :列出最新创建的容器

演示:

1.[KANO@kelvin ~]$ docker ps
2.CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3.#什么也没有显示,因为刚才运行的容器在运行后就停止了,ps没有任何参数时,默认返回正在运行的容器
4.[KANO@kelvin ~]$ docker ps -a
5.CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6.1b2ad927e99b centos "/bin/bash" 4 minutes ago Exited (0) 3 minutes ago high_engelbart
7.b739cc3b468e centos "echo 'hello world'" 8 minutes ago Exited (0) 8 minutes ago compassionate_wozniak
8.f896b1aa1b9a kiwenlau/hadoop-slave:0.1.0 "/bin/sh -c ''/root/s" 2 weeks ago Exited (137) 2 weeks ago slave2
9.34f2c96104bd kiwenlau/hadoop-slave:0.1.0 "/bin/sh -c ''/root/s" 2 weeks ago Exited (137) 2 weeks ago slave1
10.9b3c668bbbf3 kiwenlau/hadoop-master:0.1.0 "/bin/sh -c ''/root/s" 2 weeks ago Exited (137) 2 weeks ago master
11.7f6a984f7891 centos:hadoop "/bin/bash" 2 weeks ago Exited (0) 2 weeks ago distracted_rosalind
12.977107b28f11 centos:hadoop "/bin/bash" 2 weeks ago Exited (0) 2 weeks ago goofy_rosalind
13.26fdf0632dc4 centos "/bin/bash" 2 weeks ago Exited (0) 2 weeks ago modest_sammet
14.60bf9249027a centos "/bin/bash" 2 weeks ago Exited (0) 2 weeks ago hungry_hopper
15.38e8d75dc3d0 ubuntu:14.04 "/bin/bash" 2 weeks ago Exited (130) 2 weeks ago angry_blackwell
16.9415009d239c fedora "/bin/bash" 2 weeks ago Exited (0) 2 weeks ago trusting_hodgkin
17.#-a返回所有容器的信息
18.

inspect返回容器详细信息

1.[KANO@kelvin ~]$ docker inspect 1b2ad927e99b837e5840b38cc36dbb7f661354a713bd27dbb478efe7928bf227 
2.[
3.{
4. "Id": "1b2ad927e99b837e5840b38cc36dbb7f661354a713bd27dbb478efe7928bf227",
5. "Created": "2015-12-22T08:27:14.348973558Z",
6. "Path": "/bin/bash",
7. "Args": [],
8. "State": {
9. "Running": false,
10. "Paused": false,
11. "Restarting": false,
12. "OOMKilled": false,
13. "Dead": false,
14. "Pid": 0,
15. "ExitCode": 0,
16. "Error": "",
17. "StartedAt": "2015-12-22T08:27:15.989546491Z",
18. "FinishedAt": "2015-12-22T08:28:11.729801895Z"
19. },
20. "Image": "14dab3d4037239f08fb78310885f0ffd09adb3e2c6161ad72e36adb81661703f",
21. "NetworkSettings": {
22. "Bridge": "",
23. "EndpointID": "",
24. "Gateway": "",
25. "GlobalIPv6Address": "",
26. "GlobalIPv6PrefixLen": 0,
27. "HairpinMode": false,
28. "IPAddress": "",
29. "IPPrefixLen": 0,
30. "IPv6Gateway": "",
31. "LinkLocalIPv6Address": "",
32. "LinkLocalIPv6PrefixLen": 0,
33. "MacAddress": "",
34. "NetworkID": "",
35. "PortMapping": null,
36. "Ports": null,
37. "SandboxKey": "",
38. "SecondaryIPAddresses": null,
39. "SecondaryIPv6Addresses": null
40. },
41. "ResolvConfPath": "/var/lib/docker/containers/1b2ad927e99b837e5840b38cc36dbb7f661354a713bd27dbb478efe7928bf227/resolv.conf",
42. "HostnamePath": "/var/lib/docker/containers/1b2ad927e99b837e5840b38cc36dbb7f661354a713bd27dbb478efe7928bf227/hostname",
43. "HostsPath": "/var/lib/docker/containers/1b2ad927e99b837e5840b38cc36dbb7f661354a713bd27dbb478efe7928bf227/hosts",
44. "LogPath": "/var/lib/docker/containers/1b2ad927e99b837e5840b38cc36dbb7f661354a713bd27dbb478efe7928bf227/1b2ad927e99b837e5840b38cc36dbb7f661354a713bd27dbb478efe7928bf227-json.log",
45. "Name": "/high_engelbart",
46. "RestartCount": 0,
47. "Driver": "devicemapper",
48. "ExecDriver": "native-0.2",
49. "MountLabel": "",
50. "ProcessLabel": "",
51. "AppArmorProfile": "",
52. "ExecIDs": null,
53. "HostConfig": {
54. "Binds": null,
55.

自定义容器名:

1.docker run --name=自定义名 -i -t IMAGE /bin/bash

那么我们在运行inspect命令就可以使用这个容器

重新启动停止的容器:

1.docker start [-i] 容器名

删除停止的容器:

1.docker rm 容器名

2. 守护式容器

上面我们运行了交互式容器,运行后就停止。但是有些情况下,我们需要一个长时间运行、没有交互式对话的容器,这就是守护式容器。它非常适合运行应用程序和服务。

以守护形式运行容器:

  • docker run -i -t IMAGE /bin/bash
  • 在运行交互式容器的时候以Ctrl+P和Ctrl+Q的组合键退出容器
  • 演示:
1.[KANO@kelvin ~]$ docker run -i -t centos /bin/bash
2.[root@26b420bf9124 /]# #【Ctrl+P然后Ctrl+Q】[KANO@kelvin ~]$ docker ps
3.CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4.26b420bf9124 centos "/bin/bash" 12 seconds ago Up 10 seconds tender_hypatia
5.

如果要再次进入到容器中,需要附加到运行中的容器:

1.docker attach 容器名

演示:

1.[KANO@kelvin ~]$ docker attach 26b420bf9124ce5ab264ac04279b11fff4ec9db82a72012023526a6547de0186 
2.
3.[root@26b420bf9124 /]#
4.

启动守护式容器:

1.docker run -d 镜像名 [COMMAND] [ARG...]

-d:表示启动容器时以后台方式启动

查看容器日志:

1.docker logs [-f] [-t] [--tail] 容器名
2. -f --follows=true|false 默认为false #跟踪日志变化返回结果
3. -t --timestamps=true|false 默认为false #加上时间戳
4. --tail="all" #返回结尾处多少数量的日志

查看容器内进程:

1.docker top 容器名

在运行中的容器内启动新进程:

1.docker exec [-d] [-i] [-t] 容器名 [COMMAND] [ARG...]

停止守护式容器:

1.docker stop 容器名

或者

1.docker kill 容器名

更多帮助可查看Docker文档:

1.man docker-run
2.man docker-logs
3.man docker-top
4.man docker-exec
5....

Docker容器的更多相关文章

  1. docker——容器安装tomcat

    写在前面: 继续docker的学习,学习了docker的基本常用命令之后,我在docker上安装jdk,tomcat两个基本的java web工具,这里对操作流程记录一下. 软件准备: 1.jdk-7 ...

  2. Docker容器环境下ASP.NET Core Web API应用程序的调试

    本文主要介绍通过Visual Studio 2015 Tools for Docker – Preview插件,在Docker容器环境下,对ASP.NET Core Web API应用程序进行调试.在 ...

  3. 在docker容器中vi指令找不到

    在使用docker容器时,有时候里边没有安装vi,敲vi命令时提示说:vi: command not found,这个时候就需要安装vi,可是当你敲apt-get install vi命令时,提示: ...

  4. 理解Docker(4):Docker 容器使用 cgroups 限制资源使用

    本系列文章将介绍Docker的有关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...

  5. docker学习(5) 在mac中创建mysql docker容器

    github上有一个专门的docker-libary项目,里面有各种各样常用的docker镜像,可以做为学习的示例,今天研究下其中mysql镜像的用法,国内镜像daocloud.io也能找到mysql ...

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

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

  7. 自定义Docker容器的 hostname

    自定义Docker容器的 hostname   作者: John Deng 原创内容,欢迎传播,请注明出处:http://www.cnblogs.com/johnd/p/set-docker-host ...

  8. Docker容器是否可以改变世界?

    Docker容器是否可以改变世界? 2016-01-15 杜亦舒 2016年了,很多大牛开始预测技术趋势,其中一个普遍的观点我也很认同: Docker会更加流行,会改变程序世界 2015年的上半年我接 ...

  9. 搭建ubuntu14.04的hadoop集群【docker容器充当服务器】

    首先弄出来装有hadoop.java.ssh.vim的镜像起名badboyf/hadoop.做镜像有两种方法,一种是用Dockerfile来生成一个镜像,一种是基于ubuntu14.04的基础镜像生成 ...

  10. 在docker容器中安装和使用,linux版的powershell

    powershell 传教士 原创文章.始于 2016-09-18 ,2016-10-27修改powershell docker官网.允许转载,但必须保留名字和出处,否则追究法律责任 1 在任意版本的 ...

随机推荐

  1. ASP.NET打印EXCEl报表技术总结

    序言:我们在做企业项目或者一些管理系统的时候往往会用到导出到excel报表这项功能,下面我介绍的是用windows自带的excel来打印 首先必须引入:Interop.Excel.dll.Intero ...

  2. UVA 11491 Erasing and Winning

    题意: 给你一个n位整数,让你删掉d个数字,剩下的数字要尽量大. 分析: 用了vector数组模拟.如果当前要插入的数>vector数组里的最后一位数,就替换且d-- 代码: #include ...

  3. UVA 1599 Ideal Path

    题意: 给出n和m,n代表有n个城市.接下来m行,分别给出a,b,c.代表a与b之间有一条颜色为c的道路.求最少走几条道路才能从1走到n.输出要走的道路数和颜色.保证颜色的字典序最小. 分析: bfs ...

  4. sqlserver数据库三范式的理解

    从来都是听过概念,过一段时间就忘记了,根本就没有深入的理解.这次梳理一遍,用自己的方式记录一下. 1nf 原子性,不可拆分性 例如一张表里包含一个class属性(软件系,外语系,经贸系...)字段,这 ...

  5. HTTP Status 404 - No result defined for action com.hebky.oa.classEntity.action.EntitysAction and result input

    在开发中总遇到这个问题,No result defined for action:原因:Action中的属性值为空的时候,Struts2的默认拦截器会报错,但是又找不到input的Result,不能够 ...

  6. Why AIXTHREAD_SCOPE Should Be Set To 'S' On AIX

    In a multi-processor environment running on an AIX platform, if you are intending to use multi-threa ...

  7. python学习笔记:python对象

    一.python对象 python使用对象模型来存储数据,构造任何类型的值都是一个对象.所有的python对象都拥有三个特性:身份.类型和值. 身份:每个对象都有一个唯一的身份标识自己,对象的身份可以 ...

  8. php变量的引用及函数的引用

    Php变量的引用及函数的引用放回 变量的引用    $a="ABC";    $b =&$a;    echo $a;//这里输出:ABC    echo $b;//这里输 ...

  9. UML中的交互图<转>

      转自>>http://blog.csdn.net/mingxuanyun/article/details/8572128 交互图用来描述系统中的对象是如何进行相互作用的,即一组对象是如 ...

  10. struts2摘记

    阐述struts2的执行流程. Struts 2框架本身大致可以分为3个部分:核心控制器FilterDispatcher.业务控制器Action和用户实现的企业业务逻辑组件.核心控制器FilterDi ...