Articles of Docker

安装mongodb pecl软件包的问题:/ tmp / pear / temp / mongodb / configure:./configure.lineno:line 1:syntax error:unterminated quoted string

我build立一个自定义的mdocker图像基于(FROM) php:7.0-fpm-alpine图像,我需要安装mongodb扩展,所以我的Dockerfile有以下内容 FROM php:7.0-fpm-alpine MAINTAINER John Doe <[email protected]> RUN apk update &&\ apk add –update –virtual build_deps gcc g++ autoconf make openssl-dev pcre-dev &&\ docker-php-source extract &&\ pecl install mongodb && \ docker-php-ext-enable mongodb && \ docker-php-source delete && \ apk del build_deps autoconf gcc g++ make && \ rm -rf /var/cache/apk/* && \ rm […]

什么容器/服务在Docker for Azure中创build外部负载平衡器规则?

Docker for Azure的一个有用function是,当你在容器集群中部署一个swarm服务时,Docker for Azure服务会自动创build一个负载均衡器规则来将公共stream量路由到服务(使用与发布在群服务)。 但是,我们想要改变这些负载平衡器规则的创build方式。 我们需要这样做,以便通过将特定的服务端点映射到特定的公共IP和端口来引入多租户。 为了让我们自定义如何创build负载均衡器规则的行为,我们需要了解Docker4x容器负责创build这些负载均衡器规则,了解它是如何做的,然后创build我们自己的服务版本(如果我们不能重新configuration现有的做我们想要的)。 任何人都可以帮助我们在哪里可以find这些信息?

防止负载均衡器的DDoS攻击

我正在寻找在HAProxy服务器后面运行Docker Swarm来正确路由域名。 我有几个问题,因为负载平衡器是一个单一的故障点,关于使用一个负载平衡器的可行性。 DDoS攻击在很大程度上不会影响负载均衡器,因为所有stream量都会传递给其他计算机进行处理? 如何防止针对负载平衡器的DDoS攻击 如果负载平衡器确实下降,可以做些什么? 因此切断所有公众进入docker群的工人 对于高可用性的全部想法,我真的很陌生,如果有人能提供一些信息,我会很喜欢它。 或者也许有这样的服务,这会更好地使用,而不是使自己的。 谢谢,

启动Docker-Compose项目时发生Docker错误

在以前运行的项目(几周)上运行docker-compose up -d时,构buildweb容器时出现以下错误: » |root| ‡ master * docker-compose up -d Starting gateway_web_1 ERROR: for web Cannot start service web: updating the store state of sandbox failed: failed to update store for object type *libnetwork.sbState: json: cannot unmarshal string into Go struct field sbState.ExtDNS of type libnetwork.extDNSEntry ERROR: Encountered errors while bringing up the project. […]

Docker群集故障转移

我有一个应用程序有2个容器:数据库和中间件。 我想用docker-compose将这个应用程序部署到一个docker swarm中。 我的应用程序中的每个容器取决于每个处理器适用的第三方许可证。 我想要做的就是将每个容器locking到我们为许可指定的swarm中的特定节点(也就是说,所有的数据库容器应该在一个节点上,所有的中间件容器应该在另一个节点上)。 我可以看到如何从文档中做到这一点,但我今天在这里的皱纹是,如果他们的首选服务器发生故障,我希望这些容器故障转移到另一个节点。 这是数据库容器在中间件节点上运行的唯一时间,反之亦然。 是否有可能在Docker 17.09-ce(此问题当前的最新版本)中完成此操作?

Kubernetes ImagePullBackOff由设备上没有剩余空间引起

我在我的Kubernetestesting集群上有这个奇怪的错误。 我正在运行Kubernetes 1.7.0和Docker version 1.12.6, build 78d1802 我有一个单独的卷挂载/dockerdata和/dockerdata /var/lib/docker /dockerdata到这个卷。 我的系统卷和dockerdata卷上​​都有足够的可用空间(超过50%的空闲空间)。 我仍然从kubernetes得到ImagePullBackOff错误,详细的错误是: Failed to pull image "<redacted>": rpc error: code = 2 desc = failed to register layer: ApplyLayer exit status 1 stdout: stderr: open /usr/share/man/es/man1/fakeroot-sysv.1.gz: no space left on device. 如果我通过删除陈旧的图像手动清理,我可以解决这个问题,但据我所知,我不应该 – 因为我的卷没有接近完全容量(我想这也是为什么Kubernetes GC不'踢入)。 我猜我有些不明白Docker如何与本地磁盘相关,但是我很难过。 任何指针赞赏。 这里有一些更多的信息:符号链接信息: file /var/lib/docker /var/lib/docker: symbolic link to /dockerdata […]

错误无法写入文件“/usr/src/app/yarn-error.log”:“EACCES:权限被拒绝,打开”/usr/src/app/yarn-error.log“

我有以下组成yml version: '3.2' services: node: image: node:latest volumes: – woocommerce-grunt-rysnc-sync:/usr/src/app:rw – wordpress-plugin:/usr/src/app/build:rw – node_modules-data:/usr/src/app/node_modules:rw working_dir: /usr/src/app user: '1000' entrypoint: yarn command: install read_only: false privileged: true mysql: image: mysql:latest ports: – '3307:3307' volumes: – mysql-data:/var/lib/mysql:rw environment: – MYSQL_ROOT_PASSWORD=wordpress restart: always woocommerce: depends_on: – mysql links: – mysql image: visiblevc/wordpress:latest ports: – 8080:80 – 443:443 volumes: […]

Dockerfile使用ssh和deploy密钥从私有gitlab克隆

(编辑)这个问题也发生在我的笔记本电脑使用根和我的用户,这可能会得到问候,当试图用SSH用户。 然后尝试了一下这个可靠的手册,它也提出了回购的错误。 试过另一个,克隆完美无瑕。 这个问题似乎并不是用git,docker或者ssh,而是用gitlabconfiguration。 在一个Dockerfile上,我正在尝试运行gitlab的公司服务器上托pipe的私有存储库,并使用非标准的ssh端口进行设置 。 这是我期望运行(在sshconfiguration文件中的一些参数旁边) RUN git clone [email protected]:GroupName/repo_name.git 我已经检查过的东西: 回购有一个部署密钥,它是活跃的。 使用Ansible而不是Docker进行自动化,可以连接和克隆仓库。 密钥名为id_rsa,它位于〜/ .ssh / 试过用ssh-agent,似乎没问题(虽然我在configuration文件中指定,不需要它) Identity added: /opt/.ssh/id_rsa (/opt/.ssh/id_rsa) 〜/ .ssh / config具有以下内容: Host * StrictHostKeyChecking no PubkeyAcceptedKeyTypes +ssh-rsa PasswordAuthentication no User git ForwardAgent yes Identityfile /opt/.ssh/id_rsa # /opt is the home of the user RUNning the command in docker port 22022 […]

docker从1.11升级到1.13

我在主机上运行Debian 8.5 Jessie。 所以我试图在docker里面运行docker: $ docker info Error response from daemon: client is newer than server (client API version: 1.24, server API version: 1.23) 主机上的当前版本的docker: root@runner:~# docker -v Docker version 1.11.2, build b9f10c9 所以我想碰撞版本,我看到1.13出来,所以我想这样。 这是问题所在,我该如何升级? 看到这个页面后: https : //docs.docker.com/release-notes/它似乎有不同types的Docker。 如何找出我正在使用哪一个(我inheritance了这个项目)以及如何升级它。 我已经读过docker-machine upgrade工作,但docker机没有在我的系统上被识别。 那么如何升级我的docker?

将logstash日志位置从控制台更改为文件

我已经使用logstash安装了logstash 。 它运行良好。 在Docker安装中,默认情况下,日志输出转到控制台。 我希望日志输出也应该与控制台一起去文件。 为此,我将下面的configuration项添加到我的logstash log4j.properties文件中 appender.file.type = File appender.file.name = LOGFILE appender.file.fileName = /usr/share/logstash/logs/logstash.log appender.file.layout.type = PatternLayout appender.file.layout.pattern = [%d{ISO8601}][%-5p][%-25c] %m%n 之后,我使用下面的命令重新启动docker容器托pipelogstash docker restart logstash 但是日志不会写入日志文件。 它仍然要安慰。 还有什么我错过了。 另外,如何识别控制台日志文件 任何帮助将不胜感激