我想要一个 Docker 服务/Swarm 网络内的 shell。具体来说,我希望能够连接到网络内部的数据库。
从管理器节点,我尝试了:
# docker network ls
NETWORK ID NAME DRIVER SCOPE
481c20b4039a bridge bridge local
2fhe9rtim9mz my-network overlay swarm
Run Code Online (Sandbox Code Playgroud)
然后
docker run -it --network my-network alpine sh
Run Code Online (Sandbox Code Playgroud)
但我收到错误:
docker:来自守护程序的错误响应:群范围网络(事件数据核心产品)与
docker create或不兼容docker run。该网络只能由 docker 服务使用。
是否可以以某种方式启动可以连接到网络服务的交互式会话?
我想在不停机的情况下更新 docker swarm 服务。问题是我没有足够的资源来进行服务复制。有办法做到这一点吗?
我应该在该命令使用的撰写文件中放入什么内容docker stack deploy,以使用该命令复制网络的创建docker network create test --scope swarm?所以我需要将范围更改为桥驱动程序的集群。我一直在谷歌搜索日志,但找不到任何东西。
我想知道以下问题的答案:-
我目前正在集群模式下运行 Docker 17.09-ce。我想知道我是否创建了一个加密覆盖网络,$ docker network create --opt encrypted --driver overlay secure-net并让 2 个容器在同一加密覆盖网络中运行,例如容器 A(Nginx)和容器 B(自定义应用程序)。我是否仍然需要使用 SSL/TLS 来保护我的 Nginx,以便Custom App在Nginx两者之间的安全通道中进行通信,或者就安全性而言,拥有加密的覆盖网络就足够了
假设 Nginx 不需要暴露给主机外部的外部请求,这意味着 Nginx 中不会暴露任何端口,并且所有通信仅通过覆盖网络在内部进行通信。
我已阅读下面的文章,但不是 100% 确定
我创建了一个docker-compose.yml包含在两个不同节点上运行的两个服务的文件。这两个服务旨在与客户端和服务器在同一端口上进行通信。下面是我的 docker-compose.yml 文件。
version: "3"
services:
service1:
image: localrepo/image1
deploy:
placement:
constraints: [node.hostname == node1]
replicas: 1
resources:
limits:
cpus: "1"
memory: 1000M
restart_policy:
condition: on-failure
ports:
- 8000:8000
networks:
- webnet
service2:
image: localrepo/image2
deploy:
placement:
constraints: [node.hostname == node2]
replicas: 1
resources:
limits:
cpus: "1"
memory: 500M
restart_policy:
condition: on-failure
ports:
- "8000:8000"
networks:
- webnet
networks:
webnet:
Run Code Online (Sandbox Code Playgroud)
当我发出docker stack deploy -c错误时,阅读
> Error response from daemon: rpc error: code = 3 desc = …Run Code Online (Sandbox Code Playgroud) 我想将堆栈部署到 docker swarm,我希望每个节点都运行给定的服务。
我查看了deploy.placement配置,发现最接近的选项是放置首选项spread=node.label.abc,它将在与标签匹配的节点上平均分配服务。然而,这需要始终更新副本计数以匹配节点数量。
有没有一种方法可以在所有节点上自动部署服务,而无需手动更新副本计数?
我目前正在使用具有限制 cpu、限制内存以及预留 cpu 和内存的 Docker Swarm。
完成测试后,我想删除这些配置。我找不到任何有关如何删除这些的文章。
是否有办法通过更新删除这些设置而不删除并重新创建 docker 服务?
Docker版本
Run Code Online (Sandbox Code Playgroud)Client: Version: 18.06.1-ce API version: 1.38 Go version: go1.10.3 Git commit: e68fc7a215d7133c34aa18e3b72b4a21fd0c6136 Built: Tue Oct 2 18:06:45 2018 OS/Arch: linux/amd64 Experimental: false Server: Engine: Version: 18.06.1-ce API version: 1.38 (minimum version 1.12) Go version: go1.10.3 Git commit: e68fc7a/18.06.1-ce Built: Tue Oct 2 18:08:26 2018 OS/Arch: linux/amd64 Experimental: false
请帮忙。
谢谢
docker service update --force --image ${image} ${service} 将只更新一项服务,但我有几个依赖于同一个图像的服务,我需要同时更新它们。
我有一个私有的 docker 注册表,当我从中提取图像时一切正常但是当我想启动 docker swarm 服务时:
docker service create --name myredis --network mynetwork --replicas 1 -p 6379:6379 myregistry:8082/redis
Run Code Online (Sandbox Code Playgroud)
,它显示了下一个错误
unable to pin image myregistry:8082/redis to digest: Head http://myregistry:8082/v2/redis/manifests/latest: no basic auth credentials
Run Code Online (Sandbox Code Playgroud)
创建 docker swarm 服务时如何使用本地注册表?
我正在学习 Docker。作为我学习的一部分,有一个主题我没有理解。与 Docker 中的约束相比,Docker 放置首选项的使用。
我一直在互联网上搜索并询问很多人,每个人都知道限制而不是偏好。我还没有在互联网上找到任何好的参考。在 Docker 中放置首选项有什么用?我应该什么时候使用它们?任何示例示例?