初始化群模式:
root@ip-172-31-44-207:/home/ubuntu# docker swarm init --advertise-addr 172.31.44.207
Swarm initialized: current node (4mj61oxcc8ulbwd7zedxnz6ce) is now a manager.
To add a worker to this swarm, run the following command:
Run Code Online (Sandbox Code Playgroud)加入第二个节点:
docker swarm join \
--token SWMTKN-1-4xvddif3wf8tpzcg23tem3zlncth8460srbm7qtyx5qk3ton55-6g05kuek1jhs170d8fub83vs5 \
172.31.44.207:2377
Run Code Online (Sandbox Code Playgroud)要向此群添加管理器,请运行"docker swarm join-token manager"并按照说明操作.
# start 2 services
docker service create continuumio/miniconda3
docker service create --name redis redis:3.0.6
root@ip-172-31-44-207:/home/ubuntu# docker service ls
ID NAME REPLICAS IMAGE COMMAND
2yc1xjmita67 miniconda3 0/1 continuumio/miniconda3
c3ptcf2q9zv2 redis 1/1 redis:3.0.6
Run Code Online (Sandbox Code Playgroud)
如上所示,redis有它的复制品,而miniconda似乎没有被复制.
我通常登录到miniconda容器来输入这些命令:
/opt/conda/bin/conda install jupyter …Run Code Online (Sandbox Code Playgroud) 问题:无法停止docker容器,每当我尝试停止容器时,我收到以下错误消息,
ERROR: for yattyadocker_web_1 cannot stop container: 1f04148910c5bac38983e6beb3f6da4c8be3f46ceeccdc8d7de0da9d2d76edd8: Cannot kill container 1f04148910c5bac38983e6beb3f6da4c8be3f46ceeccdc8d7de0da9d2d76edd8: rpc error: code = PermissionDenied desc = permission denied
Run Code Online (Sandbox Code Playgroud)
操作系统版本/版本: Ubuntu 16.04 | Docker版本17.09.0-ce,构建afdb6d4 | Docker Compose版本1.17.1,build 6d101fb
重现步骤:
docker build -t <project name> .或docker-compose up --build我试过的:
sudo service docker restart,然后可以删除容器.注意:此配置之前工作正常,但文件权限可能已更改,我看到此错误.我必须跑sudo service docker restart,然后可以删除容器.但这非常不方便,我不知道如何解决这个问题.
参考文件:
# docker-compose.yml
version: '3'
volumes:
db-data:
driver: local
redis-data:
driver: local
services:
db:
image: postgres:9.4.1
volumes: …Run Code Online (Sandbox Code Playgroud) 我想知道如何配置此工具以从最少数量的节点开始,并在需要时增长到最大节点数.
我应该使用其他工具还是docker swarm解决这个问题?
我有一个docker-compose文件,它在同一主机中部署了8种不同的docker服务.是否可以将其部署在不同的主机中?,我想在一个主机中部署一些服务,在其他主机远程部署另一个服务.我需要使用docker-swarm吗?或者是一种更简单的方法吗?
我已经读过它可以使用DOCKER_HOST来完成,但如果我使用这个变量配置/ etc/default/docker,所有服务都将在远程主机上运行,我需要的是一个远程主机中的一些服务,以及其他其他远程主机中的服务.
我看到越来越多的软件组织在面向服务的体系结构中使用gRPC,但人们仍然在使用REST.在什么用例中使用gRPC是有意义的,何时使用REST进行服务间通信是有意义的?
有趣的是,我遇到过使用REST和gRPC的开源项目.例如,Kubernetes和Docker Swarm都在某种程度上使用gRPC进行集群协调,但也公开REST API以与主/领导节点连接.为什么不上下使用gRPC?
目标是使用Linux服务器和运行Docker For Windows的Windows 10计算机运行混合OS Docker swarm
目前,只要将--endpoint-mode标志设置为'dnsrr',Windows工作者理论上就支持混合操作系统群.这在这里解释.然而,尝试使用traefik路由到简单的码头工人图像stefanscherer/whoami图像失败.
// On (Linux) Manager Node:
docker swarm init --advertise-addr <hostaddress> --listen-addr <hostaddress>:2377
// On (Windows 10) Worker Node:
docker swarm join <jointoken>
// On Manager Node:
docker network create --driver=overlay traefik-net
docker service create \
--name traefik \
--constraint=node.role==manager \
--publish 80:80 --publish 8080:8080 \
--mount type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock \
--network traefik-net \
traefik \
--docker \
--docker.swarmmode \
--docker.domain=traefik \
--docker.watch \
--web
docker service create \
--name whoami …Run Code Online (Sandbox Code Playgroud) 我发现docker swarm,kubernetes非常相似,然后有docker这是一家公司,上面两个是docker集群工具.究竟所有这些工具究竟是什么以及它们之间的差异呢?
谁曾尝试过关于Docker Swarm的本教程?
https://docs.docker.com/get-started/part4/
有一节叫做:创建一个集群.我想要做的是使用docker-machine创建几个VM.因为我使用ubuntu16.0.4所以我使用以下命令来获取VirtualBox.
sudo apt-get update
sudo apt-get install virtualbox-5.2
Run Code Online (Sandbox Code Playgroud)
安装VirtualBox后,输入如下命令:
docker-machine create --driver virtualbox myvm1
但它说: sudo:docker-machine:命令未找到
所以我输入另一个命令来检查我是否正确安装了VirtualBox.
sudo virtualbox版本
这将打开Oracle VM VirtualBox Manager,这意味着我确实安装了VirtualBox,但不确定.
谁能帮助我找到合适的解决方案?任何帮助,将不胜感激.
在我们的团队中,我们正在转换到Docker以在我们的服务器上部署所有内容.
我们使用Docker Swarm和多个(10+)撰写文件来定义大量(20+)服务.到目前为止,一切都运行良好,除非我们使用docker stack rm <name>(并重新部署使用docker stack deploy <options> <name>)取下堆栈:大约每隔一次,我们会收到以下错误:
Failed to remove network <id>: Error response from daemon: network <id> not foundFailed to remove some resources from stack: <name>
Run Code Online (Sandbox Code Playgroud)
使用时docker network ls,网络确实没有被删除,但是,docker network rm <id>总是导致以下结果:
Error response from daemon: network <id> not found
Run Code Online (Sandbox Code Playgroud)
更奇怪的是,docker network inspect <id>返回正常输出的事实.网络始终overlay是使用用于部署堆栈的撰写文件创建的网络.目前,我们的Swarm中只有一个节点.
我们当前的"解决方法"是重新启动Docker(解决问题),但这在生产环境中不是可行的解决方案.离开群并再次加入它也不能解决问题.
起初,我们认为这个问题只与Docker for Mac有关(因为我们第一次遇到本地机器上的问题),但Debian Stretch也出现了同样的问题.在这两种情况下,我们都使用最新的Docker发行版.
我真的很感激任何帮助!
我在我的Mac上尝试使用1.12的docker swarm.我启动了3个VirtualBox虚拟机,创建了一个3的swarm集群.
docker@redis1:~$ docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS
2h1m8equ5w5beetbq3go56ebl redis3 Ready Active
8xubu8g7pzjvo34qdtqxeqjlj redis2 Ready Active Reachable
cbi0lyekxmp0o09j5hx48u7vm * redis1 Ready Active Leader
Run Code Online (Sandbox Code Playgroud)
但是,当我创建服务时,我看到没有错误,但副本始终显示0/1:
docker@redis1:~$ docker service create --replicas 1 --name hello ubuntu:latest /bin/bash
76kvrcvnz6kdhsmzmug6jgnjv
docker@redis1:~$ docker service ls
ID NAME REPLICAS IMAGE COMMAND
76kvrcvnz6kd hello 0/1 ubuntu:latest /bin/bash
docker@redis1:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Run Code Online (Sandbox Code Playgroud)
可能是什么问题呢?我在哪里寻找原木?谢谢!
docker-swarm ×10
docker ×7
kubernetes ×2
bad-gateway ×1
dockerfile ×1
grpc ×1
rest ×1
tcp-ip ×1
traefik ×1
ubuntu ×1