我现在正在尝试在Kubernetes集群上运行一个带shell(/ bin/bash)的简单容器.
我认为有一种方法可以通过使用pseudo-tty和分离选项(命令-td选项docker run)来保持容器在Docker容器上运行.
例如,
$ sudo docker run -td ubuntu:latest
Run Code Online (Sandbox Code Playgroud)
在Kubernetes有这样的选择吗?
我尝试使用如下kubectl run-container命令运行容器:
kubectl run-container test_container ubuntu:latest --replicas=1
Run Code Online (Sandbox Code Playgroud)
但容器会退出几秒钟(就像使用docker run上面提到的没有选项的命令启动一样).并且ReplicationController重复再次启动它.
有没有办法让Kubernetes上的容器像命令中的-td选项一样运行docker run?
我正在尝试删除图像,我得到:
# docker rmi f50f9524513f
Failed to remove image (f50f9524513f): Error response from daemon: conflict: unable to delete f50f9524513f (cannot be forced) - image has dependent child images
Run Code Online (Sandbox Code Playgroud)
这是docker版本:
# docker version
Client:
Version: 1.10.3
API version: 1.22
Go version: go1.5.3
Git commit: 20f81dd
Built: Thu Mar 10 21:49:11 2016
OS/Arch: linux/amd64
Server:
Version: 1.10.3
API version: 1.22
Go version: go1.5.3
Git commit: 20f81dd
Built: Thu Mar 10 21:49:11 2016
OS/Arch: linux/amd64
Run Code Online (Sandbox Code Playgroud)
但没有额外的信息:
# docker images --format="raw" | grep f50f9524513f …Run Code Online (Sandbox Code Playgroud) 我们都知道我们在Spring容器中默认使用bean作为单例,如果我们有一个基于Spring框架的Web应用程序那么在这种情况下我们真的需要实现Singleton设计模式来保存全局数据而不是仅仅通过spring创建一个bean .
如果我无法解释我其实想要问的问题,请耐心等待.
Scott Meyers的书第18项有效STL:50改进您对标准模板库的使用的具体方法说避免vector <bool>因为它不是STL容器而且它实际上并不存在bool.
以下代码:
vector <bool> v;
bool *pb =&v[0];
Run Code Online (Sandbox Code Playgroud)
不会编译,违反STL容器的要求.
错误:
cannot convert 'std::vector<bool>::reference* {aka std::_Bit_reference*}' to 'bool*' in initialization
Run Code Online (Sandbox Code Playgroud)
bool返回类型应该是T&,但为什么它是特殊情况vector<T>::operator []?
什么是T&真正组成的呢?
该项目进一步说:
deque<bool> v; // is a STL container and it really contains bools
Run Code Online (Sandbox Code Playgroud)
这可以用作替代品vector<bool>吗?
有人可以解释一下吗?
由于在堆栈中使用容器所需的唯一操作是:
为什么它的默认容器是deque而不是vector?
不要deque重新分配在front()之前给出元素缓冲区,以便push_front()是一个有效的操作吗?这些元素不会浪费,因为它们永远不会在堆栈的上下文中使用吗?
如果没有开销使用一个deque这种方式,而不是一个向量,为什么是priority_queue矢量不是一个deque也默认?(priority_queue需要front(),push_back()和pop_back() - 基本上与堆栈相同)
根据以下答案进行了更新:
似乎deque通常实现的方式是固定大小数组的可变大小数组.这使得比向量的增长速度(这需要重新分配和复制),所以对于像一个栈,所有关于添加和删除元素,双端队列可能是一个更好的选择.
priority_queue需要大量的索引,因为每个删除和插入需要你运行pop_heap()或push_heap().这可能使得向量成为更好的选择,因为添加元素仍然是分摊常数.
我找不到将docker运行容器从一个主机移动到另一个主机的方法.
有没有什么方法可以将我的容器推送到存储库,就像我们为图像做的那样?目前,我没有使用数据卷来存储与容器内运行的应用程序相关联的数据.所以有些数据驻留在容器中,我想在重新设计设置之前保留这些容器.
我发现他们有一个键和多个值是唯一的.
有谁知道任何C容器库?我正在寻找能够提供链接列表,数组,哈希表等标准实现的东西,就像C++ STL一样.主要关注点是:
我有一个Docker容器在1G RAM的主机中运行(还有其他容器在同一主机中运行).此Docker容器中的应用程序将解码一些图像,这可能会消耗很多内存.
有时,这个容器会退出.我怀疑这是由于内存不足但不是很确定.我需要一种方法来找到根本原因.那么有什么方法可以知道这个容器的死亡发生了什么?