目前我有很多RHEL7 VMs运行,RackSpace并希望部署docker swarm用于测试目的.该Docker文件只介绍使用泊坞窗机部署泊坞窗群的方法.
问:
既然VirtualBox不能在虚拟机中使用,那么我可以在不使用docker机器的情况下直接在我的虚拟机上部署docker swarm吗?
我已经熟悉docker/swarm,但发现有一个"新"项目:docker/swarmkit.但遗憾的是,在阅读完README后,我仍然无法弄清楚它的功能是什么docker/swarmkit.可以anyoone帮助制定之间的关系docker/swarm和docker/swarmkit?为什么docker/swarmkit出生?
背景:我正在使用docker-compose将tomcat服务放入docker swarm集群中,但我现在正在努力解决我将如何接近日志记录目录,因为我想扩展服务但仍保留其唯一性记录目录.
考虑(显然)组成的docker-compose,它只是启动tomcat并安装一个日志文件系统来捕获日志.
version: '2'
services:
tomcat:
image: "tomcat:latest"
hostname: tomcat-example
command: /start.sh
volumes:
- "/data/container/tomcat/logs:/opt/tomcat/logs,z"
版本
问题:我想了解如何将变量插入"卷"日志路径,以便日志目录对于缩放服务的每个实例都是唯一的
说,
volumes:
- "/data/container/tomcat/${container_name}/logs:/opt/tomcat/logs,z"
Run Code Online (Sandbox Code Playgroud)
我看到基于项目名称(或我所在的目录),容器名称实际上是已知的,所以我可以使用它吗?
例如,将项目名称设置为'tomcat'并运行docker-compose scale tomcat=2我会看到以下容器.
那么有什么方法可以将它作为日志量的变量来利用,欢迎其他建议或方法.我意识到我可以指定一个相对路径并让container_id处理这个问题,但现在如果我将splunk或logstash附加到日志设备上,我需要知道哪些确实是日志设备,而不是基本容器f /秒.然而,理想情况下,我正在寻找一个特定的绝对路径.
在此先感谢码头工人!R.
我们在 docker-swarm 中遇到网络问题。问题如下;
我应该去哪里检查,有什么建议吗?
server-1:~$ docker version
Client:
Version: 17.03.0-ce
API version: 1.26
Go version: go1.7.5
Git commit: 3a232c8
Built: Tue Feb 28 08:01:32 2017
OS/Arch: linux/amd64
Server:
Version: 17.03.0-ce
API version: 1.26 (minimum version 1.12)
Go version: …Run Code Online (Sandbox Code Playgroud) 是否可以从我的本地mac在云托管的docker swarm集群上执行命令?如果有,怎么样?
我想执行命令,例如从我的本地执行docker swarm:
docker create secret my-secret <address to local file>
docker service create --name x --secrets my-secret image
Run Code Online (Sandbox Code Playgroud) 我在一个虚拟机中有一个docker swarm,它有2个核心4GB ram Centos.
在我部署docker私有注册表(注册表2.6.4)时,它将服务状态显示为永久挂起.我用了
docker service ps <<registry_name>>
当我docker inspect <<task_id>>在消息中检查使用时,我得到了
"没有合适的节点(在1节点上不满足调度约束)".
我尝试了服务重启和重新部署.
如何解决这个问题?
我正在尝试启动一个安装了主机目录的mysql容器.我在Docker for AWS中运行单节点群.但我无法挂载目录......
这是我正在使用的docker-compose文件的一部分:
mysql:
image: mysql-custom
volumes:
- /mysql:/var/lib/mysql
ports:
- "3307:3306"
Run Code Online (Sandbox Code Playgroud)
这是我正在尝试的启动命令:
docker stack deploy --compose-file docker-compose.yml stack12
Run Code Online (Sandbox Code Playgroud)
然而,当我启动时,docker swarm拒绝图像,说"无法挂载类型为"绑定\":绑定源路径不存在".但是,/ mysql 是一个有效的目录,我可以cd到它和一切,所以为什么docker说它不存在?
所以我正在尝试使用traefik作为反向代理在docker swarm上建立一个gitlab-ce实例.
这是我的代理堆栈;
version: '3'
services:
traefik:
image: traefik:alpine
command: --entryPoints="Name:http Address::80 Redirect.EntryPoint:https" --entryPoints="Name:https Address::443 TLS" --defaultentrypoints="http,https" --acme --acme.acmelogging="true" --acme.email="freelyformd@gmail.com" --acme.entrypoint="https" --acme.storage="acme.json" --acme.onhostrule="true" --docker --docker.swarmmode --docker.domain="mydomain.com" --docker.watch --web
ports:
- 80:80
- 443:443
- 8080:8080
networks:
- traefik-net
volumes:
- /var/run/docker.sock:/var/run/docker.sock
deploy:
placement:
constraints:
- node.role == manager
networks:
traefik-net:
external: true
Run Code Online (Sandbox Code Playgroud)
还有我的gitlab堆栈
version: '3'
services:
omnibus:
image: 'gitlab/gitlab-ce:latest'
hostname: 'lab.mydomain.com'
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'https://lab.mydomain.com'
nginx['listen_port'] = 80
nginx['listen_https'] = false
registry_external_url 'https://registry.mydomain.com'
registry_nginx['listen_port'] = 80
registry_nginx['listen_https'] = false …Run Code Online (Sandbox Code Playgroud) 我是集群容器管理的新手,这个问题是这里所有新手的基础。
我阅读了一些文档,但我的理解仍然不太清楚,所以任何线索..有助于理解?
我认为这 4-5 组会更好地帮助我。
我正在尝试使用Docker Swarm作为堆栈部署在小型集群上设置Spark + HDFS部署。我可以正常使用它,但是遇到了一个问题,该问题阻止了Spark利用数据局部性。
为了启用数据局部性,我在每个服务器上都制作了一个单一的“工作节点”容器,该容器同时包含Spark工作程序和HDFS数据节点。这里的想法是,由于它们在同一容器中运行,因此它们在堆栈的覆盖网络上都应具有相同的IP地址。但是,他们没有。看来容器在覆盖网络上获得了一个VIP,而堆栈使用的撰写文件中定义的服务获得了另一个VIP。
事实证明,HDFS datanode进程绑定到容器VIP,Spark worker进程绑定到服务的VIP(据我所能确定)。结果,Spark不知道Spark工作者和HDFS数据节点实际上是在同一台计算机上,仅调度具有ANY局部性的任务。
我确定我缺少什么,但是我(当然)不知道什么。
我用于定义每个工作程序节点服务的Docker堆栈组合文件条目如下所示:
version: '3.4'
services:
...
worker-node2:
image: master:5000/spark-hdfs-node:latest
hostname: "worker-node2"
networks:
- cluster_network
environment:
- SPARK_PUBLIC_DNS=10.1.1.1
- SPARK_LOG_DIR=/data/spark/logs
depends_on:
- hdfs-namenode
volumes:
- type: bind
source: /mnt/data/hdfs
target: /data/hdfs
- type: bind
source: /mnt/data/spark
target: /data/spark
deploy:
mode: replicated
replicas: 1
placement:
constraints:
- node.hostname == slave1
resources:
limits:
memory: 56g
...
networks:
cluster_network:
attachable: true
ipam:
driver: default
config:
- subnet: 10.20.30.0/24
Run Code Online (Sandbox Code Playgroud)
Hadoop HDFS-site.xml配置如下所示:
<?xml version="1.0" encoding="UTF-8"?> …Run Code Online (Sandbox Code Playgroud) docker-swarm ×10
docker ×9
apache-spark ×1
gitlab ×1
hadoop ×1
hdfs ×1
kubernetes ×1
minikube ×1
networking ×1
raspberry-pi ×1
rhel ×1
scale ×1
traefik ×1
vmware ×1
volume ×1