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 资源 ...
随机推荐
- mini-httpd源码分析-mini-httpd.c之外总结
version.h #define SERVER_SOFTWARE "mini_httpd/1.21 18oct2014" #define SERVER_URL "htt ...
- 关于 实时推送技术--WebSocket的 知识分享
今天学习了关于WebSocket的知识,觉得挺有用的,在这记录一下,也和大家分享一下!!有兴趣的可以看看哦 WebSocket简介 Web领域的实时推送技术,也被称作Realtime技术.这种技术要达 ...
- Silverlight第三方控件专题
原文http://www.cnblogs.com/nasa/archive/2008/12/01/1344927.html 这里我收集整理了目前网上silverlight第三方控件的专题,若果有所遗漏 ...
- STL中用erase()方法遍历删除元素
STL中的容器按存储方式分为两类,一类是按以数组形式存储的容器(如:vector .deque):另一类是以不连续的节点形式存储的容器(如:list.set.map).在使用erase方法来删除元素时 ...
- poj2583---Series Determination
#include <stdio.h> #include <stdlib.h> int main() { int x,y,z,a,b,c; while(scanf("% ...
- [LeetCode][Python]Median of Two Sorted Arrays
# -*- coding: utf8 -*-'''https://oj.leetcode.com/problems/median-of-two-sorted-arrays/ There are two ...
- http-关于application/x-www-form-urlencoded等字符编码的解释说明
在Form元素的语法中,EncType表明提交数据的格式 用 Enctype 属性指定将数据回发到服务器时浏览器使用的编码类型. 下边是说明: application/x-www-form-urlen ...
- 剑指offer 25 二叉树中和为某一值的路径
非递归方法: class Solution { public: vector<vector<int>> FindPath(TreeNode* root,int expectNu ...
- The Swift Programming Language--语言指南--协议
Protocol(协议)用于统一方法和属性的名称,而不实现任何功能.协议能够被类,枚举,结构体实现,满足协议要求的类,枚举,结构体被称为协议的遵循者. 遵循者需要提供协议指定的成员,如属性,方法, ...
- history.js 一个无刷新就可改变浏览器栏地址的插件(不依赖jquery)
示例: http://browserstate.github.io/history.js/demo/ 简介 HTML4有一些对浏览历史的前进后退API的支持如: window.hist ...