标签: docker-swarm

Docker 部署 - 一台机器 - 无停机时间

我只有一个小型 Web 项目要通过 Docker 运行,并且只有一台机器无法使用虚拟化,而且我也并不真正需要虚拟化。我想知道如何使用 Docker 将应用程序部署到 VPS 而不会造成任何停机。

目前,我只是使用存储库并使用 docker-compose 创建 docker 容器(包括通过特定 .yaml 文件进行生产的一些配置)。

我想最好是使用 Swarm,但我认为这是不可能的,因为我只能使用一台机器。

docker docker-compose docker-swarm

3
推荐指数
2
解决办法
3465
查看次数

Docker Swarm,如何仅通过其他服务的“主机名”进行通信?

我对 Docker Compose 和容器链接有一些经验。在非 swarm 环境中,您可以使用其名称轻松地从容器连接web到容器db_mysql(例如,在 PHP 中,我可以将 MySQL 连接配置为:

$dsn = 'mysql:host=db_mysql;

我很难理解它如何在 Swarm 模式下与 Docker 一起工作,特别是考虑到“副本”和“负载平衡”机制。

假设我有 5 台不同的 Docker 机器,每台机器都有不同的公共 IP,参与 Swarm。我还有一个web服务和一个db在这 5 台不同机器上复制的服务(每台机器 1 个实例)。

我的问题是:如何制作 5 个web容器中的任何一个,与 5 个容器中的任何一个进行通信,db_mysql而不强制这些web容器了解任何 Docker Machine 公共 IP 或这些容器位于 Swarm 中的事实?

docker docker-swarm

3
推荐指数
1
解决办法
1719
查看次数

docker config 相对于为容器设置环境变量有什么好处?

Docker 配置和容器环境变量设置似乎都实现了相同的目标。特别是当考虑要设置的环境变量可以从文件(env_file)中获取时。

docker config 相对于为容器设置环境变量有什么好处?

docker docker-swarm

3
推荐指数
1
解决办法
1169
查看次数

为什么 Traefik 2.0 没有检测到我指定的默认静态证书,而是自己生成一个?

在我最初尝试将基于 docker-swarm 的 Traefik 安装从 1.7 迁移到 2.0 时,我发现 traefik.toml 配置文件中默认静态指定的 SSL 配置被忽略,并且启用调试后,我的 docker 日志显示了许多类似的消息:

time="2019-11-06T20:26:30Z" level=debug msg="No default certificate, generating one"
Run Code Online (Sandbox Code Playgroud)

https docker-swarm traefik

3
推荐指数
1
解决办法
2684
查看次数

docker堆栈部署depends_on

给定撰写文件

version: '3.8'
services:
  whoami1:
    image: containous/whoami
    depends_on:
      - whoami2
  whoami2:
    image: containous/whoami
Run Code Online (Sandbox Code Playgroud)

当部署到 docker swarmdocker stack deploy -c docker-compose.yaml test 服务时whoami1whoami2似乎以随机顺序启动并忽略depends_on条件。

 docker stack deploy -c docker-compose.yaml test
Creating network test_default
Creating service test_whoami1
Creating service test_whoami2
Run Code Online (Sandbox Code Playgroud)

docker swarm 是否支持通过依赖项进行服务启动排序?

docker docker-compose docker-swarm docker-stack

3
推荐指数
1
解决办法
8117
查看次数

无法通过主机名称 ping docker 容器

我的服务器上有很多容器,我需要通过名称(而不是IP)访问所有容器。当然,我可以通过 IP 地址 ping 容器。问题是我无法通过主机名或名称对它们执行 ping 操作。

另外,我不使用 docker-compose。我使用 docker file 和 docker Restapi

docker docker-swarm

3
推荐指数
1
解决办法
5460
查看次数

Elastic Beanstalk 上的 Docker + Django

我有一个 Django 项目。我正在考虑在部署到 Elastic Beanstalk 之前向其中添加 Docker。我对 Django 和 Docker 非常陌生,想了解在将 Django 应用程序部署到 Elastic Beanstalk 时使用 Docker 有哪些好处。谢谢!

django amazon-web-services docker amazon-elastic-beanstalk docker-swarm

3
推荐指数
1
解决办法
1823
查看次数

window.ENV vs process.env vs window._env 在 vuejs 应用程序中使用时有什么区别?

我最近开始使用 vue js 工作,在尝试使用 docker ucp 中的 docker 容器部署的 vuejs 应用程序中进行运行时 url 注入时,我遇到了 window.ENV 和 window._env。我阅读了有关 process.env 的信息,以便在应用程序中使用环境变量。但不确定 window.ENV 或 window._env 或 process.env 有什么不同?在此先感谢您的帮助!!

production environment-variables docker vue.js docker-swarm

3
推荐指数
1
解决办法
7640
查看次数

Jenkins Swarm插件-具有RANDOM字母数字值的从站名称

我正在使用Jenkins(1.573)和Swarm插件(2.0):https : //wiki.jenkins-ci.org/display/JENKINS/Swarm+Plugin

http://maven.jenkins-ci.org/content/repositories/releases/org/jenkins-ci/plugins/swarm-client/2.0/下载了jar

我已经在Jenkins(主机)中安装了插件,并且从其中一台Linux机器(我想用作从机)中下载了具有依赖项2.0的swarm客户端jar并运行了以下命令:

注意
$ p变量中存储了密码。
可以正常使用模式(而不是独占模式)。

$ java -jar swarm-client-2.0-jar-with-dependencies.jar -name“`hostname -a`_01” -fsroot“`pwd` /`hostname -a`_01” -master http://jenkins_server.yo .company.com:8081 -disableSslVerification-用户名c123456-密码$ p-说明“主机名-a”-执行程序5-标签“ ANSIBLE_CENTOS CENTOS”-模式“独占”-重试3

Discovering Jenkins master
Dec 03, 2015 3:52:58 PM org.apache.commons.httpclient.HttpMethodBase getResponseBody
WARNING: Going to buffer response body of large or unknown size. Using getResponseBodyAsStream instead is recommended.
Attempting to connect to http://jenkins_server.yo.company.com:8081/ 1229493c-3bd5-4cf4-9210-3392089f2ee2 with ID 1893f0ea
Could not obtain CSRF crumb. Response code: 404
Dec 03, 2015 3:53:01 PM hudson.remoting.jnlp.Main createEngine …
Run Code Online (Sandbox Code Playgroud)

master-slave slave jenkins jenkins-plugins docker-swarm

2
推荐指数
1
解决办法
1481
查看次数

Docker Swarm模式下的浏览器服务容器

我使用docker-machine创建了3个vm:

docker-machine create -d virtualbox manager1
docker-machine create -d virtualbox worker1
docker-machine create -d virtualbox worker2
Run Code Online (Sandbox Code Playgroud)

这些是他们的IP:

docker-machine ls
NAME      ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER    ERRORS
manager   -        virtualbox   Running tcp://192.168.99.102:2376                                   v1.12.6
worker1   -        virtualbox   Running   tcp://192.168.99.100:2376           v1.13.0-rc5  
worker2   -        virtualbox   Running   tcp://192.168.99.101:2376           v1.13.0-rc5   
Run Code Online (Sandbox Code Playgroud)

然后 docker-machine ssh manager1

和:

docker swarm init --advertise-addr 192.168.99.102:2377
Run Code Online (Sandbox Code Playgroud)

然后worker1和worker2加入到swarm中.

现在我创建了一个覆盖网络:

docker network create -d overlay skynet
Run Code Online (Sandbox Code Playgroud)

并在全局模式下部署服务(节点的1个任务):

VM_IP:SERVICE_PORT[R

节点实际上有1个容器(任务).

现在,我想直接访问我的虚拟主机..或者,至少,我想直接浏览我的服务容器,因为我想用nginx开发我的服务负载均衡器.为此,在我的nginx conf文件中,我想指向一个特定的服务集合器(即现在我在全局模式下有3个节点(1个管理员和2个工作者),所以我有3个任务在运行 - > i我想选择这3个容器中的一个.我怎样才能做到这一点?

[编辑]:我可以指向我的swarm节点,只需浏览到VM_IP:SERVICE_PORT,即:

192.168.99.102:8200

但仍有内部负载平衡.我在想,如果我指向一个特定的swarm节点,我将在该特定节点内使用容器.但是现在没什么.

virtualbox nginx docker docker-swarm katacoda

2
推荐指数
1
解决办法
766
查看次数