docker进入容器
进入容器的三种方式:
- sshd
- nsenter
- exec
sshd
在容器中开启一个SSHD的服务,通过SSH的协议登录到容器中,把容器看出一个vm
nsenter:
nsenter包含在util-linux包中,用来进入一个进程的Namespace
获取一个容器的进程ID:
docker inspect --format "{{ .State.Pid}}" <container-id>
nsenter --target $pid --mount --uts --ipc --net --pid
exec:
docker 1.3版本引入的一个新的指令,用来进入一个容器中运行指令
docker exec <container-id> ["CMD"]
orchestration as a Service:
orchestration as a Service的目标是协调在不同Host上的Container,把他们有机的组织在一起成为一个统一的系统;
- 解决Container的协调管理
- 单个数据中心单节点/多个节点跨数据中心
- Container之间的网络通信
Oaas解决方案:
- Fig,简单,但是不支持跨主机的Orchestrate
- Kubernetes, Google推出的跨云的Oaas的解决方案
Fig:
- Fig通过对于Docker的封装,从而方便我们构建应用的运行环境
- 应用运行的所有组件全部运行在Container中,通过服务发现的方式连接在一起;
服务发现:
- Fig使用Docker自带的Link方式来实现服务发现,Fig会负责管理Link的相关信息;
fig通过当前目录下fig.yml文件来创建应用的运行环境;
fig.yml中需要定义不同的service
Service:
Service标示的是一个独立的组件,例如web应用,Mysql, Redis等都可以定义为一个独立的Service, Service是可以横向扩展的
可以在Service中直接定义Image,也可以通过定义build配置项来运行时创建Image
所有的Service都会被运行为一个或多个Docker的Container
fig.yml:
build说明从当前目录来构建Image,需要当前目录有Dockerfile,镜像名默认是{当前目录名字_ServiceName}
command表示启动Container的cmd
links中的值是service name,这样可以在scale out中把多个container连接到自己;
创建:
fig up命令会根据当前的fig.yml来启动container,并且根据配置信息把对应的container连接在一起
可以通过fig up {service}的方式,只启动某个service 定义的container
如果在当前目录下反复执行fig up,会重新创建新的container,可以通过加参数-no-recreate来防止这个问题产生;
检查:
fig ps, 类似于docker ps,用来检查当前fig.yml所定义的service对于的container的运行情况;
水平扩展:
fig scale service=Num的方式可以水平扩展service对于的container的个数;
新添加的container如果是link的源头之一,是不会被自动添加到link的目标container中的,这可以通过重新创建container的方式来解决;
清除环境:
fig stop用来停止container
fig rm用来删除container
调试:
可以通过使用fig run {service} cmd的方式来对环境进行调试,比如需要看到实际通过link注入到某一个service的环境变量,可以通过fig run web export的方式;
fig run也是运行一个container,如果该service依赖于其他的service,并且其他的service没有被创建,那么也会先创建service的container,可以通过设置-no-deps来禁止;
docker进入容器的更多相关文章
- Docker的容器
容器是一个打包了应用和服务的环境,是一个轻量级的虚拟机,每一个容器都由一组特定的应用和必要的依赖库组成. 容器的管理操作 容器常见的命令:查看.创建.启动.终止和删除 创建容器 docker crea ...
- 【转】深入 Docker:容器和镜像
在本专栏往期的 Flux7 系列教程 里,我们已经简单地探讨了 Docker 的基本操作.而在那篇教程中,我们一直是简单地将容器当成是"正在运行的镜像",并没有深入地区分镜像和容器 ...
- 理解Docker单机容器网络
在” 理解Docker单机容器网络 “一文中,还有一个Docker容器网络的功能尚未提及,那就是Docker容器的端口映射.即将容器的服务端口P’ 绑定到宿主机的端口P上,最终达到一种效果:外部程序通 ...
- docker进入容器的方式
通过docker创建守护运行(在使用-d参数时)的容器时,容器启动后会进入后台.用户无法看到容器中的信息.某些时候如果需要进入容器进行操作,有多种方法,包括使用docker attach命令.dock ...
- Docker与容器快速入门
Docker之风席卷全球,但很多人觉得docker入门确实不太容易,其原因在于很多知识点上没准备好,在docker解决了什么问题.怎么解决的.用什么技术解决的都还没想清楚的时候就去探索docker组件 ...
- Docker系列之(三):Docker微容器Alpine Linux
1. 前言 使用Docker创建容器时,基础镜像通常选择Ubuntu或Centos,不管哪个镜像的大小都在100MB以上. Alpine Linux是一个面向安全的轻型的Linux发行版. Alpin ...
- docker commit容器
docker commit 容器ID 镜象REPOSITORY 镜象TAG 如docker commit 52b41c68ac7b registry.lenovows.com:5000/video-a ...
- FW Docker为容器分配指定物理网段的静态IP
官方有关于网桥和IP配置的文档地址:https://docs.docker.com/articles/networking/ 1.宿主机(系统采用ubuntu-14.04.1-server-amd64 ...
- Docker,容器,虚拟机和红烧肉
Docker火了,有多火你自己看看下面的统计数据就知道了 在发布4个月的时间里,下载量就超过50000次,github上收到超过4000个star,涌现了超过100个贡献者,并且有超过150个项目和超 ...
- Docker: 限制容器可用的 CPU
默认情况下容器可以使用的主机 CPU 资源是不受限制的.和内存资源的使用一样,如果不对容器可以使用的 CPU 资源进行限制,一旦发生容器内程序异常使用 CPU 的情况,很可能把整个主机的 CPU 资源 ...
随机推荐
- SQL Server 向堆表中插入数据的过程
堆表中 IAM 记录着的数据页,表的各个数据页之间没有联系.也就是说一个页面它不会知道自己的前一页是谁,也不知道自己的后一页是谁. 插入数据时先找到IAM页,再由pfs(page free spac ...
- otl库(以前不知道有这个库,并且还可以在Unix下使用)
OTL介绍:OTL 是 Oracle, Odbc and DB2-CLI Template Library 的缩写,是一个C++编译中操控关系数据库的模板库,它目前几乎支持所有的当前各种主流数据库,例 ...
- 【每天一个Linux命令】12. Linux中which命令的用法
which 用来查看可执行文件的位置. 1.命令格式: which 可执行文件名称 2.命令功能: which指令会在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果. 3. ...
- 柯南君:看大数据时代下的IT架构(7)消息队列之RabbitMQ--案例(routing 起航)
二.Routing(路由) (using the Java client) 在前面的学习中,构建了一个简单的日志记录系统,能够广播所有的日志给多个接收者,在该部分学习中,将添加一个新的特点,就是可以只 ...
- linux 磁盘空间扩容 vg(+pv) lv(+空间) lv(缩减磁盘空间)
preFace APP scenario description: 当你未能合理的规划存储时,在后期的维护工作中可能会涉及的存储的 再规划(eg,某一个 or 数个App 对某一个lv 即挂载点写Bi ...
- js的replace的用法;
obj.replace("需要替换的字符串","替换后的字符串")
- 使用Swift的代理,闭包来封装一个公用协议减少垃圾代码
iOS开发中,如果不进行适当的封装,使用协议或者继承类来进行开发,你就会遇到传说中的ViewController(以后简称VC) Hell的问题…… 比如说,我们先声网App中为了调用接口,做简单的判 ...
- Rabbit and Grass(杭电1849)(尼姆博弈)
Rabbit and Grass Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- JavaScript中NODE操作学习总结
Node: 1.在 HTML DOM (文档对象模型)中,每个部分都是节点: 文档本身是文档节点 所有 HTML 元素是元素节点 所有 HTML 属性是属性节点 HTML ...
- Win8.1重装win7或win10中途无法安装
一.有的是usb识别不了,因为新的机器可能都是USB3.0的,安装盘是Usb2.0的. F12更改系统BIOS设置,我改了三个地方: 1.设置启动顺序为U盘启动 2.关闭了USB3.0 control ...