这与我的家庭服务器设置有关,我有一台NAS服务器和两台运行多个docker容器的Ubuntu 16.04 LTS主机。 两台主机都将CIF挂载到NAS上的位置,并且一些docker容器在这些cifs挂载上具有卷挂载。 NAS固件/软件需要不时更新,在尝试提出需要最less的人工干预的更新程序时,我发现自己想知道如果Ubuntu主机丢失了cif文件会发生什么情况当容器运行时连接。 例如,当VMWare ESXi丢失iSCSI挂载时,挂起正在使用它的所有机器。 Docker会做类似的事吗? 它会像那些卷装突然空了吗? 我不一定要找一个更好的方法来执行我的NAS更新,我可以肯定地停止所有的容器,并在更新后mount -a ,但是知道这个基于NAS的设置如何影响我的容器将是很好的。
我有两个独立的networking,一个是可信的,一个是不可信的。 可信networking包含一台服务器。 蓝色是现有的,可信赖的networking,大盒子是服务器,通过eth0连接到可信networking。 我现在要开始使用服务器上的可用资源来托pipeDocker容器中包含的服务到不可信networking(红色)。 我希望所有绑定到0.0.0.0的东西像往常一样工作,但不要绑定到eth1和docker1。 这意味着nginx应该能够与除eth1和docker1之外的所有接口进行通信。 它不应该能够与192.168.2.0/24子网(也包括docker1网桥)进行通信。 这也适用于sshd和桑巴,以及任何服务。 没有来自192.168.2.0/24的设备应该能够在服务器上build立ssh会话或通过samba连接。 服务器上不应该发送192.168.2.0/24到其他子网的路由。 因此,192.168.1.0/24networking上的服务器和任何设备应该能够访问容器1到3,但不能访问4和5.容器4和5不能访问192.168.1.0/24上的任何东西networking。 我相信这应该是可以通过使用iptables。 另外,我将如何configurationdocker桥? 我缺乏iptables的经验,更多的是使用dockernetworking,所以我们将不胜感激。 (这两个networking之间的所有通信应该只发生在一个路由器上,路由器正在使用NAT,因此子网192.168.1.0/24可以通过它访问192.168.2.0/24,但是只有路由器上的端口转发允许它,但是这是一个不同的(并解决了)问题。) 更新 :会添加这些规则这个工作吗? iptables -A INPUT -i eth1 -j DROP iptables -A OUTPUT -i eth1 -j DROP iptables -A FORWARD -i eth1 -j DROP iptables -A INPUT -i docker1 -j DROP iptables -A OUTPUT -i docker1 -j DROP iptables -A FORWARD […]
我有一个正常的Apache / MySQL服务的公司和这些公司的用户login到一个Web应用程序。 所以所有公司的每个人都在同一个用户表中。 虽然我的代码确实试图让公司隔离在PHP中,比如SELECT * FROM Users WHERE Company=$COMPANY ,但我确实看到了SQL注入从其他客户获取私有数据的可能性,因为代码库很可能相当广阔。 我们正在审查代码,但按照这个速度,我们将在几年内完成。 同时,我正在考虑Docker,希望给我的每个客户自己的容器提供Apache服务器(带有一个小缓冲区,2个php工作者),以及具有32或64 MB缓冲池的MySQL。 然后这个容器只允许1个TCP连接用于HTTPS,这个连接将根据主机名(例如customer-a.mycompany.com)进行反向代理。 没有文件被写入磁盘。 而且PHP源代码会使用git保持最新,所以也许我们甚至可以把选定的客户放在我们的testing版上。 我已经被告知,Docker并不是为上述场景devise的,也不会为我提供我所寻求的安全性。 我得到一个黑客可以注入代码到一个容器,并会影响到一个客户。 但是,Docker不会阻止发现用于其他客户的虚拟主机,从而减less黑客对大多数客户的影响。 只有一个我们可以在财务上处理,但不是12。 除了安全性之外,我很高兴看到为每个公司准备的MySQL缓冲池的可能性一般会更快,因为当客户A执行一个疯狂的SQL报告时,我猜测缓冲池被疯狂的报告覆盖,所以当客户B接下来做一个简单的查询时,必须从磁盘上重新获取数据。 将来,我希望在GUI上看到这些“容器”,并能够将它们拖放到另一个服务器上(更快,容器更less)。例如,为某些电力客户提供“更快”的速度。 上述任何梦想是否符合2017年的现实? 你认为我应该考虑什么平台/工具?
我正在使用Alpine / Nginx / PHP-FPM 7.1.2。 我无法得到PHP错误的显示或输出到我的Nginx服务器块的error.log 。 access.log似乎工作得很好。 我在www.conf的底部find了/usr/local/etc/php-fpm.d/ php_flag[display_errors] = on php_admin_value[error_log] = /var/log/fpm-php.www.log php_admin_flag[log_errors] = on 在Docker日志中没有任何东西,并且/var/log/fpm-php.www.log也没有错误… 我需要做什么来显示和logging错误? 我也试过错误日志: /proc/self/fd/2
在我的泊坞窗撰写文件中,我可以指定日志logging驱动程序为“fluentd”,默认情况下,它将日志推google-fluentd端口google-fluentd上的google-fluentd监听器 我可以看到日志出现在日志页面上,标签作为容器Id。 Howerver,看起来像我不知道如何将标签名称更改为我想要的东西(而不是容器标识) 我在Docker撰写的configuration非常简单 logging: driver: fluentd options: tag: "my-server" # does not work 更新:看起来像选项是无效的。 不pipe我在标签选项中改变了什么,它都不起作用。 即使当我把一些疯狂的select,它仍然运行,但没有正确的标签
使用官方最新的HAProxy Docker容器和下面的configuration文件: frontend logging_frontend bind *:1514 mode tcp timeout client 1m default_backend logging_backend backend logging_backend mode tcp balance roundrobin timeout connect 10s timeout server 1m server logstash-collector-01 logstash-collector-01:1514 check server logstash-collector-02 logstash-collector-02:1514 check server logstash-collector-03 logstash-collector-03:1514 check 我得到的日志(通过nxlog发送到1514通过TCP)不存储实际的客户端IP,而是泊坞窗网关IP。 例如: 2017-03-02T15:57:41.585Z 172.18.0.1 {“EventTime”:“2017-03-01 15:25:02”,“Hostname”:“server.mycompany.net”,“Keywords”:58096435992,“事件types “:” ERROR “ ”SeverityValue“:4, ”严重性“: ”ERROR“, ”事件ID“:551, ”SOURCENAME“: ”微软Windows的SMBSERVER“, ”ProviderGuid“:”{D48CE617-33A2-4BC3 -A5C7-11AA4F29619E} “ […]
通过/etc/docker/daemon.json ,我已经使用userns-remapconfiguration了一个用户名空间。 我试图启动一个nginx-proxy容器,但它需要访问Docker套接字,这需要它是真正的根。 命名空间破坏了这一点,导致"operation not permitted"错误。 有没有办法告诉Docker 不要把这个单独的容器放在命名空间中? 如果可以通过docker-compose,这是可取的。
预期结果 您是否会build议如何通过AWS Elasticbeanstalk多容器Docker应用程序上的Dockerfile在我的webroot中安装npm和composer依赖项? 现在的情况 我一直在Docker容器中通过Dockerfile构build我的文件,代码如下: // Dockerfile … # npm WORKDIR /var/www/tmp_html RUN mkdir -p npm WORKDIR /var/www/tmp_html/npm COPY php-app/package.json package.json RUN npm update && npm install # composer … // similar to above # Switch working directory back to webroot WORKDIR /var/www/html 部署后,当我ssh到实例的php:fpm容器,我可以看到以下结构: root@3f8bf1xc2a78:/var/www# ls html tmp_html 构build的文件在/ tmp_html中,我试图把它们移到/ html。 通过我的Dockerfile像这样: ONBUILD RUN mv […]
我打算在vSphere虚拟机上部署一些apache docker容器和一个nginx代理容器。 据我所知,环回存储设备不推荐用于docker,但是当服务器本身是虚拟机,没有专用的物理设备时,是否会产生巨大的影响?
我正在尝试configuration一个docker镜像来运行一个挂载的卷,用于持久化。 该图像是官方artifactory之一。 对于我来说,创build几个目录后会停止“Permission denied”,这似乎很奇怪。 当我检查装入的卷,我可以看到,图像试图上升时创build了几个文件夹。 数据库configuration也是可以的。 挖了一下,这个家伙似乎有权限问题artifactory 但是,我不能再去解释或纠正这个问题了。 — Found java executable in JAVA_HOME (/usr/lib/jvm/java-8-openjdk-amd64) mkdir: cannot create directory '/opt/jfrog/artifactory/logs': Permission denied ** Could not create dir /opt/jfrog/artifactory/logs/catalina Preparing to run Artifactory in Docker ===================================== 2017-03-17 12:51:17 [42 entrypoint-artifactory.sh] Checking open files and processes limits 2017-03-17 12:51:17 [45 entrypoint-artifactory.sh] Current max open files is 65536 […]