Articles of Docker

由Docker转发的重复的SYN包?

我正在经历一个CISCO防火墙和连接到它的Docker主机之间的奇怪交互:CISCO定期将我的主机标记为SYN攻击者,并closures我的以太网端口。 我一直在运行tcpdump主机过滤SYN数据包,这是我已经遇到的模式的一个例子: 20:45:53.863232 In 00:0c:29:67:9f:5b ethertype IPv4 (0x0800), length 76: 172.16.23.92.34272 > 172.16.23.102.3314: Flags [S], seq 2717143176, win 29200, options [mss 1460,sackOK,TS val 670292160 ecr 0,nop,wscale 7], length 0 20:45:53.863268 Out 02:42:ed:33:9c:27 ethertype IPv4 (0x0800), length 76: 172.16.23.92.34272 > 172.17.0.8.3306: Flags [S], seq 2717143176, win 29200, options [mss 1460,sackOK,TS val 670292160 ecr 0,nop,wscale 7], length […]

CoreOS上的ElasticSearch容器具有持久性存储

我试图在DigitalOcean上的Docker和CoreOS [stable]上运行ElasticSearch集群。 为了获得持久性存储的工作,我尝试了几乎所有的select,并用尽了想法。 几乎每个–volume选项( -v /data/elasticsearch elasticsearch, -v $(pwd)/esdata:/data/elasticsearch ,…)都被忽略,并且在日志中using [1] data paths, mounts [[/usr/share/elasticsearch/data (/dev/vda9)]] 。 只有当使用-v /usr/share/elasticsearch/data:/data/elasticsearch我得到一个错误,说它不能在只读文件系统上写。 我究竟做错了什么? 完整的elasticsearch.service是: [Unit] Description=ElasticSearch service After=docker.service Requires=docker.service [Service] TimeoutSec=180 EnvironmentFile=/etc/environment ExecStartPre=/usr/bin/mkdir -p /data/elasticsearch ExecStartPre=/usr/bin/docker pull elasticsearch ExecStart=/bin/bash -c '\ curl -f ${COREOS_PRIVATE_IPV4}:4001/v2/keys/services/elasticsearch; \ if [ "$?" = "0" ]; then \ UNICAST_HOSTS=$(etcdctl ls –recursive /services/elasticsearch \ […]

如何让DockerparsingDMZ主机?

想象一下,我有这样的设置: 应用程序服务器 私有IP: 1.0.0.1 ; 私有主机名: machine1.internal.domain 公共IP: 2.0.0.1 ; 公共主机名: machine1.example.com 数据库服务器 私有IP: 1.0.0.2 ; 私有主机名: machine2.internal.domain 公共IP: 2.0.0.2 ; 公共主机名: machine2.example.com 这两台机器都在DMZ中。 Machine1需要使用内部主机名连接到machine2。 有一点很重要:我们不希望这两者之间有任何交通stream量进入非军事区。 并且主机名machine2.internal.domain在机器#1上运行的应用程序中被硬编码。 没有Dockerized设置: 案例#1:如果名称parsing适用于machine2.internal.domain ,一切都已经好了。 案例#2:否则,我会在machine1中的/etc/hosts中添加一个条目: machine2.internal.domain 1.0.0.2 使用Docker化设置,我知道名称parsing不起作用时,Docker容器无法访问machine2,因为它不会inheritance/etc/hosts的/etc/hosts的条目。 我怎样才能使这件事情最好的方式? …对于这两种情况:DNSparsing工作,不工作。 我已经审查了案例2的以下选项: 将machine2的IP传递给machine1中的Docker容器: docker run –add-host machine2.internal.domain:1.0.0.2 … 我必须定义两次machine2.internal.domain IP:一次在/etc/hosts ,一次在Docker中运行命令 不包含在machine1中的容器的networking: docker blabla –net=host 虽然我不知道后果会是什么,但这并不正确。

在Docker内部进行战争停留在NPM上

使用Docker将war文件附加到Apache Tomcat。 努力使用NPM / MVN来获得Tomcat战争。 我在一个企业代理的背后,make脚本没有“bower install –allow-root”(查找时已经实现)。 众所周知,Docker以root身份运行一切,所以我已经得到了错误。 [echo] — BOWER INSTALL — [exec] [exec] /usr/local/lib/node_modules/bower/lib/node_modules/bower-config/lib/util/rc.js:71 [exec] throw error; [exec] ^ [exec] Error: Unable to parse /root/.bowerrc: Unexpected token } [exec] at parse (/usr/local/lib/node_modules/bower/lib/node_modules/bower-config/lib/util/rc.js:64:21) [exec] at json (/usr/local/lib/node_modules/bower/lib/node_modules/bower-config/lib/util/rc.js:86:16) [exec] at rc (/usr/local/lib/node_modules/bower/lib/node_modules/bower-config/lib/util/rc.js:32:26) [exec] at Config.load (/usr/local/lib/node_modules/bower/lib/node_modules/bower-config/lib/Config.js:16:20) [exec] at readCachedConfig (/usr/local/lib/node_modules/bower/lib/config.js:15:39) [exec] at defaultConfig (/usr/local/lib/node_modules/bower/lib/config.js:11:12) […]

权限被拒绝给用户拥有的目录

我遇到类似的问题,因为用户无法访问他们拥有的目录的内容。 快速search显示了不less其他类似的问题,但问题总是似乎是没有在目录上设置执行位。 也许我已经错过了这么长时间盯着这个东西,但这似乎不是我的问题。 与其他问题一样,可能更容易显示: me@docker-host:~$ docker exec -it sp-rsync-1 bash root@sp-rsync-syn-send:/# su –login sync_user sync_user@sp-rsync-syn-send:~$ ls -al total 24 drwxr-xr-x 6 sync_user sync_user 4096 Feb 9 20:24 . drwxr-xr-x 6 root root 4096 Feb 9 20:24 .. -rw-r–r– 1 sync_user sync_user 220 Apr 9 2014 .bash_logout -rw-r–r– 1 sync_user sync_user 3637 Apr 9 2014 .bashrc […]

Redis主从“连接丢失”错误

我有两个docker机器: $ docker-machine ls NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS redis-master * virtualbox Running tcp://192.168.99.100:2376 v1.10.1 redis-slave1 – virtualbox Running tcp://192.168.99.101:2376 v1.10.1 我试图部署主/从redis复制到这些机器,所以我们运行REDIS容器+ SENTINEL容器,并在主SLAVEOF实例上运行SLAVEOF命令。 首先一切正常,但经过一段时间(1-2分钟)主打印# Connection with slave 192.168.99.101:6379 lost. 日志和从站日志中的消息# Connection with master lost.站的# Connection with master lost. 和无限(没有成功)尝试与主同步。 我使用的REDIS版本是3.0.7 (也使用redis附带的sentinel)。 这里是MASTER日志(redis和sentinel日志): http : //pastebin.com/raw/MvwCTeEu 这里是SLAVE日志(redis和sentinel日志): http : //pastebin.com/raw/vV6e3utK sentinel.conf: port 26379 […]

当由于OOM而终止任务时,内核在内核中的内存使用情况报告

我的Docker容器内的任务由于OOM而被杀害。 这是来自/var/log/messsages 。 Feb 17 19:01:24 ip-10-0-1-85 kernel: [16211.346602] uwsgi invoked oom-killer: gfp_mask=0xd0, order=0, oom_score_adj=0 Feb 17 19:01:24 ip-10-0-1-85 kernel: [16211.351446] uwsgi cpuset=4ad797e0720ad05c90cb8f5afaa9902172c4aac9319d464e669091615b52d134 mems_allowed=0 Feb 17 19:01:24 ip-10-0-1-85 kernel: [16211.356702] CPU: 0 PID: 3969 Comm: uwsgi Tainted: GE 4.1.13-19.31.amzn1.x86_64 #1 Feb 17 19:01:24 ip-10-0-1-85 kernel: [16211.361608] Hardware name: Xen HVM domU, BIOS 4.2.amazon 12/07/2015 Feb […]

简单的docker应用程序 – 如何轻松部署?

我有一个相对简单的Web应用程序,它由两个Docker容器一起工作组成。 一个容器托pipe着Web服务器,另一个托pipe一个图像渲染软件。 在我的开发机器上,它使用docker-compose完美地工作。 对于生产这个应用程序将使用亚马逊SES和像Amazon DynamoDB一些数据库。 在这种组合中,容器本身不需要任何持久存储。 由于这些服务,我的第一个想法显然是使用Amazon EC2来托pipe应用程序。 我现在的主要目标是: 确保应用程序在网站负载较重时自动扩展(当然,需要使用负载平衡器) 在不中断服务的情况下简单部署新的容器版本 一劳永逸的解决scheme 在网站发布之初,我预计单个EC2实例将轻松处理负载,假期期间可能会出现两个或三个EC2实例峰值。 亚马逊自己的Docker托pipe解决scheme(负载平衡器和自动扩展)看起来非常有前途,但作为一个亚马逊新手,我还没有能够得到这个东西的工作,也因为configuration看起来非常复杂,你必须自己得到的东西。 我对其他types的集群非常熟悉(主要是基于Proxmox的),但Amazon Web Services看起来仍然很复杂(至less是configuration控制台)。 有没有其他的解决scheme,使这容易? 我花了很多时间研究Docker Cloud / Tutum(看起来很贵),Docker Swarm,Rancher和其他人(大部分是“beta”),但仍然困惑于哪个方向。 你将如何部署这样的应用程序?

lxc 1.1.2在Debian Squeeze上

我在Debian Squeeze(Linux kernel 3.4.34)中运行lxc 0.8.0。 有没有人在Linux内核3.4中运行lxc 1.1或更新? 据我所知,docker需要至less3.16的Linux内核版本。 什么是支持lxc 1.1的Linux内核的最低版本?

Nginx的conf模板不能与dokku一起工作

我坚持下面的nginx conf模板: # Special characters – dollar signs, spaces inside of quotes, etc. – # should be escaped with a single backslash or can cause deploy failures. server { listen [::]:80; listen 80; server_name $NOSSL_SERVER_NAME; access_log /var/log/nginx/${APP}-access.log; error_log /var/log/nginx/${APP}-error.log; # set a custom header for requests # add_header X-Served-By www-ec2-01; location / { proxy_pass http://$APP; […]