Tag: 窗群

无法访问任何服务的容器

我创build了一个图像: stavalfi/projecty:latest这是一个非常基本的Java春季应用程序。 当我运行一个没有swarm的容器时,一切工作正常: docker run -d -p 8081:8080 –name container1 stavalfi/projecty:latest 从铬工作: http://localhost:8081/ http://172.17.0.2:8080/ <<– the address of the leader (no other nodes in the swarm) 当我使用以下方法创build服务时: docker service create -p 8080:8080 –name service1 stavalfi/projecty:latest docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ab8cb85e9750 stavalfi/projecty:latest "/bin/sh -c '/usr/…" 5 minutes ago Up 5 […]

如何在PHP代码中使用Docker的秘密?

在PHP脚本中使用Docker机密的最佳实践是什么? 使用案例:我有一个Docker堆栈,它由(1)基于图像的web服务组成,它将php与apache服务器连接起来,(2)基于最新的mysql映像的db服务。 在我的web服务的/ var / www / html中,我有一个config.php,它定义了许多表示数据库连接参数(用户名,密码等)的variables。 这个config.php文件包含在整个代码库build立数据库连接的地方。 我有docker的秘密定义对应于我想在config.php中定义的每个参数 – 在config.php的定义中使用这些秘密的最佳方法是什么? 默认情况下,每个docker机密都被挂载到文件/run/secrets/<secret name> 。 我天真的解决scheme只是简单地使用fopen()和fgets(),如下所示: function getSecret($secret){ $secret_file = fopen("/run/secrets/{$secret}"); $secret = fgets($secret_file); fclose($secret_file); return $secret; } config.php文件: return [ 'database' => [ 'host' => getSecret('db_host'), 'user' => getSecret('db_user'), 'password' => getSecret('db_password), … ] ]; 这看起来是一个明智的做法吗?

Docker-Swarm:从另一个子网join一个docker-swarm

我有4个虚拟机在同一个子网中,这是一个docker群的一部分。 现在我想连接另一个节点(虚拟机),它位于不同的国家(不同的子网)。 我是一个IP noob,我很难在docker中build立一个覆盖networking,它能够处理这个连接。 通过build立这种docker群,我需要牢记哪些方面?

VPS + Docker + Traefik +多个WordPress或docker4wordpress – 如何正确设置

我想在Digital Ocean的VPS上设置开发环境。 经过一番挖掘,我决定使用下面的版本: 1)Ubuntu VPS 2)Docker 2.1)每个WordPress项目的MariaDB + WordPress 2.2)我们来encryptionTLS 2.3)Traefik用于处理每个WordPress项目的访问 后来,在googlesearch一些文章的时候,如何正确地做这个工作,我发现docker4wordpress堆栈看起来非常有趣,但是它是为本地主机开发而devise的,而且它的生产版本只能在Webly上使用,而不是在我的区域出于兴趣。 所以我决定search更多。 接下来的事情我在这个堆栈GitHub回购: https : //github.com/jlk/traefiked-wordpress 是:“注意这仅仅是为了演示的目的,要在生产中使用它,Traefik,WordPress和MariaDB的数据需要存储在合适的持久Docker卷” 所以这是我的问题没有。 1对不起noob问题,但我怎样才能使这个堆栈“生产准备”? 我不是很熟悉Docker,我有点困惑,在正确的地方去了解如何设置所有的东西来存储数据,甚至在VPS重启时等等。 问题没有。 2我想尽可能快地创build一个新的WordPress项目,你认为我采取的方法在这种情况下是一个好的方法吗? (我没有将它与共享主机进行比较,我们坚持使用VPS开发环境和Docker) 问题没有。 3你有没有经过testing的堆栈,可以与我分享,或者我可以从中获得一些最新,可靠的信息来源? 在阅读我在前5个谷歌页面上find的所有关于“docker multiple WordPress traefik”的内容之后,我只是更加困惑,有太多select可供select,因为如果没有更好的消息灵通人士的指导,我无法作出决定。 我不能告诉我是否应该与Swarm构build,以及为什么。 我会很感激你的意见。 最好的问候,尼克

从外部互联网不能连接docker群代理

我尝试通过Azure容器服务在Docker swarm上提供Python Flask(端口5000)。 部署的代理可以通过群集pipe理的curl 0.0.0.0:5000来连接,但不能从外部连接。 端口5000在代理Azure负载平衡器中定义良好。 还有什么我可以检查更多? 我用follwing命令启动烧瓶。 docker run -d -p 5000:5000 bbb/web /root/startScript.sh docker ps的结果如下。 bbb/web是我想要服务的。 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 05a96351290c bbb/web "/root/startScript.sh" 43 minutes ago Up 43 minutes 0.0.0.0:5000->5000/tcp jovial_meitner adcc2d45cbe0 swarm:1.1.0 "/swarm manage –repl" 8 months ago Up 7 weeks 0.0.0.0:2375->2375/tcp containers_swarm_1 2264e2b1636f progrium/consul "/bin/start -server -" […]

docker堆栈networking问题

我已经如下创build了Docker堆栈文件,它创build了3个服务,但是我无法访问主机的外部。 而且它也没有创build任何端口。 我创build了一个名为test01的覆盖networking。 当我通过命令行手动创build一个完美的作品。 version: '3.0' networks: default: external: name: test01 services: mssql: image: microsoft/mssql-server-windows-developer environment: – SA_PASSWORD=Password1 – ACCEPT_EULA=Y ports: – 1433:1433 volumes: – c:\Databases:c:\Databases deploy: placement: constraints: [node.labels.os==Windows] web: image: iiswithdb:latest ports: – 8080:8080 deploy: replicas: 3 lbs: image: nginx:latest ports: – 80: 80 deploy: placement: constraints: [node.labels.os==Windows]

Docker Swarm on Azure:正确使用docker4x / logger-azure

我正在Azure上使用预定义的Docker构build (Edge Channel),其中一个function是日志loggingfunction。 在pipe理器节点上使用docker ps进行检查我看到有这个editions_logger容器( docker4x / logger-azure ),它捕获所有容器日志并将其写入Azure存储帐户。 我如何直接使用这个容器来获取我的容器的日志? 我的第一个方法是直接从Azure门户find合适的存储并共享和下载日志。 第二种方法是使用docker exec -ti editions_logger cat /logmnt/xxx.log直接连接到容器docker exec -ti editions_logger cat /logmnt/xxx.log 运行docker service logs xxx抛出only supported with experimental daemon 所有的方法(不是第三个)似乎都相当复杂。 有没有更好的办法?

如何将静态IP地址设置为通过交织networking进入Swarm的容器?

TL; DR:存在于Swarm 1.0.0 bug,在Swarm 1.1.0解决。 在四个群集代理群集上,使用编织插件运行自定义覆盖networking: user@swarm-master:~$swarm-docker network create –driver weave –subnet 192.168.0.0/16 custom-weave 但是,通过这个命令及其输出,我们可以看到一个问题: user@swarm-master:~$ swarm-docker run –rm -it –net=custom-weave –ip=192.168.0.5 debian:jessie bash -c "ip addr show" 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default [ . . ] 74: ethwe0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1410 qdisc noqueue state UP group default link/ether […]

Docker的Web应用程序:bash会话

我目前正在为使用Ruby on Rails编写的Docker的Web仪表板工作。 我使用的是使用给定的Docker API的https://github.com/swipely/docker-api 。 我想添加function通过正常的bash会话与docker集装箱通信。 等效的docker命令是 docker exec -ti container_name bash 任何人有一些想法如何进入这个Web应用程序bash会话? 某种IO对象或terminal模拟器? 我试图使用给定的exec和attach函数,但没有成功。 通过docker-API执行单个命令也是一个进步。

访问在Docker Swarm上运行的MySQL

我有什么是一个生产MySQL数据库,我们想要远程访问,但还没有find一个安全的方式来做到这一点。 Docker Swarm不支持​​主机绑定的端口,例如127.0.0.1:3303:3303,不过普通模式是这样的。 公开端口也在所有群节点中公开。 使用防火墙并不是一个真正的select,因为我们必须在群集中的每个节点上configuration这些防火墙。 我们桌上只有两个选项 打开端口,只允许通过TLS进行连接,并强制执行REQUIRE选项Issuer和Subject,只允许一个用户,可能只是read_only。 由于拥有开放的港口,似乎仍然非常不安全。 创build一个临时的docker化的sshd服务,并使其在与MySQL服务相同的networking中可用,pipe理这些ssh容器更为棘手。 更安全,因为它会在需要的时候打开/closures问题:有没有其他更好的select来解决这个问题? 它有多么不安全是有开放端口+ tls连接? 如果你有一个很好的反对远程访问MySQL的参数,我将不胜感激