Docker理论与实践(三)
文章作者:Tyan
博客:noahsnail.com
1. 运行Hello world
# 运行Hello world
$ docker run ubuntu /bin/echo 'Hello world'# 在容器内运行一个ubuntu的shell
$ docker run -t -i ubuntu /bin/bash#
$ docker run -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
91d90bb91dfc ubuntu "/bin/sh -c 'while tr" 43 seconds ago Up 42 seconds pensive_jepsen$ docker logs pensive_jepsen
hello world
hello world# 查看版本信心
$ docker version
Client:Version: 1.12.1API version: 1.24Go version: go1.7.1Git commit: 6f9534cBuilt: Thu Sep 8 10:31:18 2016OS/Arch: darwin/amd64Server:Version: 1.12.1API version: 1.24Go version: go1.6.3Git commit: 23cf638Built: Thu Aug 18 17:52:38 2016OS/Arch: linux/amd64# docker帮助
$ docker --help
...$ docker stop pensive_jepsen
pensive_jepsen
docker run 运行一个容器
ubuntu 镜像名字
-t 一个新容器内部的伪终端
-i 能与容器进行交互,交互模式
/bin/bash 在容器内启动Bash shell
-d 后台运行
docker ps 列出当前运行的容器
docker logs 显示某个容器的输出
docker stop 停止某个容器的运行
docker version 输出docker版本信息
2. 运行一个简单的web应用
# 运行web应用
$ docker run -d -P training/webapp python app.py# 查看当前运行的容器
$ docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6e95e02e0fad training/webapp "python app.py" About a minute ago Up About a minute 0.0.0.0:32768->5000/tcp mad_curran# 指定容器的端口映射
docker run -d -p 80:5000 training/webapp python app.py$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
961a584288a8 training/webapp "python app.py" 9 seconds ago Up 8 seconds 0.0.0.0:32769->5000/tcp goofy_kowalevski
ddbdae724301 training/webapp "python app.py" 2 minutes ago Up 2 minutes 0.0.0.0:80->5000/tcp high_dubinsky$ docker port goofy_kowalevski 5000
0.0.0.0:32769$ docker logs -f high_dubinsky* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
172.17.0.1 - - [22/Sep/2016 09:47:27] "GET / HTTP/1.1" 200 -
172.17.0.1 - - [22/Sep/2016 09:47:27] "GET /favicon.ico HTTP/1.1" 404 -$ docker top high_dubinsky
PID USER TIME COMMAND
3732 root 0:00 python app.py$ docker inspect high_dubinsky
[{"Id": "ddbdae724301831fa2477d9c95077c3b07fa16fad3686e429a6037f33e3f570c","Created": "2016-09-22T09:37:45.008007727Z","Path": "python","Args": ["app.py"],"State": {"Status": "running","Running": true,"Paused": false,"Restarting": false,"OOMKilled": false,"Dead": false,"Pid": 3732,"ExitCode": 0,"Error": "","StartedAt": "2016-09-22T09:37:45.762803488Z","FinishedAt": "0001-01-01T00:00:00Z"},
...$ docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' high_dubinsky
172.17.0.3$ docker stop high_dubinsky$ docker rm high_dubinsky
-P 映射容器端口到主机端口
-l 告诉docker显示最后启动的容器信息
-a 显示所有容器的信息,包括已经停止运行的容器
PORTS 为容器端口与主机端口之间的映射
-p 80:5000 容器的5000端口映射主机的80端口
docker port 容器name/id 端口号,可以查看指定容器的端口5000映射到主机的端口
-f,类似linux tail -f,查看容器的标准输出
docker top 用来查看容器内部运行的进程
docker inspect 查看容器的配置与状态信息,返回的是JSON串
docker inspect -f ,查询JSON串中的指定内容
docker rm 只能移除已经停止运行的容器,因此在用之前,需要用docker stop 停止运行你想要移除的容器
注:从上面可以看到主机的两个端口32769和80都映射到了容器的5000端口,可以在主机浏览器中访问http://localhost:32769/,http://localhost:80/,都能看到Hello world!页面。虽然两个容器的端口都是5000,但它们是不一样的,容器的namespace属性会将两个容器隔离开,因此它们对应的主机端口是不一样的。
Docker理论与实践(三)相关推荐
- 光线追踪(RayTracing)算法理论与实践(三)光照
提要 经过之前的学习,我们已经可以在利用光线追踪实现一些简单的场景.今天我们要探讨的是图形学里面的三种基本光源:方向光源,点光源,聚光灯. 不同于利用现成的Api,这次会从理论到实际一步步用C++实现 ...
- Docker理论与实践(二)
文章作者:Tyan 博客:noahsnail.com 1. Docker命令 # 列出系统中的所有容器 docker ps -a# 结果 CONTAINER ID IMAGE COMMAND CREA ...
- K8S+Docker理论与实践深度集成
前言: 这篇文章主要介绍了26道Spring经典面试题总结(附带答案)的相关资料,小编在网上看到的觉得挺不错的,现在分享给大家,希望对你们有所帮助. 另外本人整理收藏了多家公司面试知识点整理 ,以及各 ...
- WCF从理论到实践(5):Binding细解(转)
WCF从理论到实践(5):Binding细解 本文的出发点: 通过阅读本文,您能了解以下知识: WCF中的Binding是什么? Binding的组成? Binding Element 的分类? Bi ...
- Gradle理论与实践一:Gradle入门
文章目录 Gradle入门 1.配置Gradle环境 2.Gradle之Hello World 3.gradle 与gradlew的区别 4.Gradle命令介绍 5.Gradle 工作流程 Grad ...
- DDD(Domain Driven Design) 领域驱动设计从理论到实践 四
- 接上 SOA 架构 面向服务架构(Service Oriented Architecture,SOA)对于不同的人来说意思不同.这里梳理一下SOA原则: 服务契约 : 通过契约文档,服 ...
- Webrtc从理论到实践七: 官方demo源码走读(peerconnection_server)
系列文章目录 Webrtc从理论到实践一:初识 Webrtc从理论到实践二: 架构 Webrtc从理论到实践三: 角色 Webrtc从理论到实践四: 通信 Webrtc从理论到实践五: 编译webrt ...
- RoboCup中的机器人自主定位——从理论到实践(三):粒子滤波器
最近虽然闲在家中,但是要开始做毕业设计了,每天光是读论文就花去了大量的时间,因此这个系列更的有点慢,不过我一定会抽空写完的,也算是为以后找工作问项目经历提前做点准备. 我们继续本节的内容~ 上一次在R ...
- Kubernetes 集群升级指南:从理论到实践
作者 | 高相林(禅鸣) **导读:**集群升级是 Kubernetes 集群生命周期中最为重要的一环,也是众多使用者最为谨慎对待的操作之一.为了更好地理解集群升级这件事情的内涵外延,我们首先会对集群 ...
最新文章
- 如何使用Leangoo敏捷工具做测试管理。
- 黄埔大学,选址定了!
- 0x0000050蓝屏srvsys_win7电脑蓝屏,显示的应该是srv.sys造成的,是什么情况?应该如何处理?...
- docker network基础
- 顺序表(代码、分析、汇编)
- react ---IOS AND ADROID
- 2015中国银联业务(武汉)面试经验(软件开发)
- 51单片机矩阵按键模块
- 求解-----组合优化问题
- android 图片轮播控
- 通过maven打nar报错问题
- 分糖果(candy)
- 循环辅助:continue
- python没有random模块_python-random模块
- 《设计模式的艺术》读书笔记
- what is the power of self-discipline in our life?
- 中国大学mooc医学计算机与信息素养答案,医学计算机与信息素养
- (ESLint)Expected '===' and instead saw '=='
- java基础之Scanner close方法
- 网传火鸟门户系统可以商用吗?
热门文章
- excel计算二元线性回归_用Excel做回归分析
- FPGA-超声波避障小车(ego1)
- 横河川仪压力变送器故障代码_压力变送器常见故障及解决办法
- Day5,page30,total160
- 关于移动设备的Flash播放器,Flash平台,和Flash未来的澄清
- cad2006激活未找到html文件,解决cad提示“cad加载自定义文件失败 未找到acad”的方法...
- Windows Installer和即点即用版本的Office程序不能并行的问题
- 学生命科学要学计算机吗,生命科学属于什么门类 计算机科学与技术专业属于什么门类...
- echarts中自定义图片的矢量路径
- Qt可拖拽排序表格(类似QQ好友分组排序)