我一直在重读Docker文档,试图了解Docker和完整VM之间的区别.它如何设法提供完整的文件系统,隔离的网络环境等,而不是那么重?
为什么将软件部署到Docker映像(如果这是正确的术语)比简单地部署到一致的生产环境更容易?
尝试按照从docker网站构建docker镜像的说明进行操作.
https://docs.docker.com/examples/running_redis_service/
这是我得到的错误将遵循文档上的说明并使用此Dockerfile
FROM ubuntu:14.04
RUN apt-get update && apt-get install -y redis-server
EXPOSE 6379
ENTRYPOINT ["/usr/bin/redis-server"]
sudo docker build -t myrepo/redis
docker: "build" requires 1 argument. See 'docker build --help'.
Run Code Online (Sandbox Code Playgroud)
如何解决?
我试图在一个调用shell脚本的docker容器中运行一个cronjob.
昨天我一直在网上搜索和堆栈溢出,但我真的找不到一个有效的解决方案.
我怎样才能做到这一点?
编辑:
我创建了一个(注释的)github存储库,其中包含一个工作的docker cron容器,它以给定的时间间隔调用shell脚本.
1 - 我正在阅读文档,我对措辞有点困惑.它说:
ClusterIP:在集群内部IP上公开服务.选择此值使服务只能从群集中访问.这是默认的ServiceType
NodePort:在静态端口(NodePort)上的每个Node的IP上公开服务.将自动创建NodePort服务将路由到的ClusterIP服务.您可以通过请求从群集外部联系NodePort服务
<NodeIP>:<NodePort>
.LoadBalancer:使用云提供商的负载均衡器在外部公开服务.将自动创建外部负载均衡器将路由到的NodePort和ClusterIP服务.
NodePort服务类型是否仍然使用ClusterIP
但只是在一个不同的端口,该端口对外部客户端开放?所以在这种情况下是<NodeIP>:<NodePort>
一样的<ClusterIP>:<NodePort>
吗?
或者NodeIP
实际上是运行时找到的IP kubectl get nodes
而不是用于ClusterIP服务类型的虚拟IP?
2 - 同样在以下链接的图表中:
http://kubernetes.io/images/docs/services-iptables-overview.svg
有什么特别的原因Client
是里面的Node
?我认为Cluster
在ClusterIP服务类型的情况下它需要在a里面.
如果为NodePort绘制了相同的图表,那么将客户端完全绘制在两者之外是否有效Node
,Cluster
或者我是否完全忽略了这一点?
Docker为您提供了一种列出运行容器或所有容器(包括已停止容器)的方法.
这可以通过以下方式完成:
$ docker ps # To list running containers
Run Code Online (Sandbox Code Playgroud)
或者
$ docker ps -a # To list running and stopped containers
Run Code Online (Sandbox Code Playgroud)
我们有办法只列出已停止的容器吗?
显然;-)标准容器提供某种形式的保证.
什么类型的保证以及不同类型的容器之间究竟有什么区别?
Container Types:
================
Container:
Forward Container
Reverse Container
Random Access Container
Sequence
Front Insert Sequence
Back Insert Sequence
Associative Container
Simple Associative Container
Pair Associative Container
Sorted Associative Container
Multiple Associative Container
Container Types mapped to Standard Containers
=============================================
std::vector: Sequence Back Sequence Forward/Reverse/Random Container
std::deque: Sequence Front/Back Sequence Forward/Reverse/Random Container
std::list: Sequence Front/Back Sequence Forward/Reverse Container
std::set: Sorted/Simple/Unique Associative Container Forward Container
std::map: Sorted/Pair/Unique Associative Container Forward Container
std::multiset: Sorted/Simple/Multiple Associative Container …
Run Code Online (Sandbox Code Playgroud) 我想删除Docker上的容器,但是当你想要删除时会发生错误
在删除容器之前的下一步,请参阅现有容器的列表
sts@Yudi:~/docker$ sudo docker ps -as
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES SIZE
78479ffeba5c ubuntu "/bin/bash" 42 hours ago Exited (0) 42 hours ago sharp_wescoff 81 B (virtual 187.7 MB)
0bd2b54678c7 training/webapp "python app.py" 5 days ago Exited (0) 5 days ago backstabbing_ritchie 0 B (virtual 323.7 MB)
0adbc74a3803 training/webapp "python app.py" 5 days ago Exited (143) 5 days ago drunk_feynman 0 B (virtual 323.7 MB)
Run Code Online (Sandbox Code Playgroud)
我要删除列表,即"training/webapp", 但发生了错误
sts@Yudi:~/docker$ sudo docker rmi training/webapp
Error response from …
Run Code Online (Sandbox Code Playgroud) 要为Ubuntu映像启动交互式shell,我们可以运行:
ole@T:~$ docker run -it --rm ubuntu
root@1a6721e1fb64:/# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
Run Code Online (Sandbox Code Playgroud)
但是当为Alpine Docker镜像运行时,会产生以下结果:
ole@T:~$ docker run -it --rm alpine
Error response from daemon: No command specified
Run Code Online (Sandbox Code Playgroud)
在Alpine基础容器中启动交互式shell的命令是什么?
C++ 11提供了多种迭代容器的方法.例如:
for(auto c : container) fun(c)
Run Code Online (Sandbox Code Playgroud)
for_each(container.begin(),container.end(),fun)
Run Code Online (Sandbox Code Playgroud)
但是,建议的方法是迭代两个(或更多)相同大小的容器来完成以下操作:
for(unsigned i = 0; i < containerA.size(); ++i) {
containerA[i] = containerB[i];
}
Run Code Online (Sandbox Code Playgroud) 什么是ssh进入Minikube VM的用户名/密码/密钥?
containers ×10
docker ×7
c++ ×2
kubernetes ×2
alpine-linux ×1
big-o ×1
c++11 ×1
cron ×1
iterator ×1
linux ×1
sh ×1
stl ×1
virtualbox ×1