Tag: 安全

在Openshift上以非root用户身份运行nginx,并在端口80上侦听

我已经连续几天尝试configuration一个在Openshift上运行的nginx容器,直到现在,它没有得到它的工作。 我已阅读有关使用非root用户的安全性原因。 但是,无论是root用户还是非root用户,openshift都不允许我在端口80的容器中创build绑定。 2017/06/22 21:18:57 [emerg] 1#1: bind() to 0.0.0.0:80 failed (13: Permission denied) nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied) 在我的本地机器上,我可以成功绑定到容器上的更高端口(例如8081),然后在主机maschine中创build一个访问映射( docker run –rm -d -p 9000:8081 mynginx )。 这样我可以成功地到达主机地址localhost:9000的网站,但我没有ideia我怎么能在openshit上实现类似的东西。 我希望我可以使用非root用户和nginx在更高端口(8081)上部署映像,同时openshift将服务器的端口80的所有传入stream量转发到容器的端口8081(nginx) 。 我目前的设置如下: Dockerfile: FROM nginx:alpine COPY nginx.conf /etc/nginx/nginx.conf COPY dist /usr/share/nginx/html RUN chmod -R 777 /var/log/nginx /var/cache/nginx /var/run \ && chgrp […]

使用docker群转发JWT令牌?

当docker swarm进行负载均衡时,是否也有内置的方式将JWT令牌转发给处理请求的服务器?

如何安全地在Docker中运行应用程序

我想在docker容器内安全地运行一个任意的应用程序,就像在一个vm中一样。 为此,我在主机系统的一个目录中保存了应用程序(我从web上下载的,我不信任的),然后创build一个将此目录映射到容器的主目录的卷,然后运行容器内的应用程序。 这种方法有没有安全问题? 有更好的解决scheme来完成相同的任务吗? 而且,为了安装所有必要的依赖关系,我让在容器内运行的bashterminal内执行一个任意的脚本:这可能是危险的吗?

在Docker中,为什么build议在Dockerfile中运行`apt-get`更新?

对不起,服务器的东西很新,但很好奇。 为什么在构build容器时运行apt-get update? 我的猜测是,这是出于安全的目的,如果这种情况下,会回答这个问题。

Docker和libseccomp

我遇到了docker的问题。 我已经在这里OpenSuse 13.2与一个自build版本的libseccomp库。 这是几个星期前的新鲜版本2.3.1。 如果我正在运行任何docker集装箱,我得到以下错误: hostname:/usr/lib/docker # docker run hello-world Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world 78445dd45222: Pull complete Digest: sha256:c5515758d4c5e1e838e9cd307f6c6a0d620b5e07e6f927b07d05f6d12a1ac8d7 Status: Downloaded newer image for hello-world:latest container_linux.go:247: starting container process caused "conditional filtering requires libseccomp version >= 2.2.1" docker: Error response from daemon: oci runtime error: container_linux.go:247: starting container process […]

Dockerregistry和基本身份validation

我有一个简单的Dockerregistry,运行在远程虚拟机上,使用基本身份validation设置进行身份validation。 在开始运行registry之前,我发布了以下命令(我只是从这些文档中无耻地复制粘贴): docker run –entrypoint htpasswd registry:2 -Bbn myuser 12345passwd > auth/htpasswd 这产生了一个auth/htpasswd文件,其中包含myuser条目和某种上面提供的密码的encryption/编码签名。 所以这显然是registry将用于authentication用户的文件。 一些担忧: 如何将新用户添加到此文件? 我必须重新启动registry容器才能使更改生效(我希望不会!)? 我如何从这个文件撤销用户,只是简单的文本编辑? 再次,需要发生的变化才能生效? 有没有办法强制授权/angular色(读/写访问)在这里? 我希望registry不仅允许一个通用的“你无限制的访问”angular色! 理想情况下,我想对哪些用户具有对哪些容器/回购的读/写访问权限进行细粒度的访问控制。

如果物理机器死了,Docker rm不会删除我的容器

我有一些容器在其存在期间在其文件系统中保存敏感信息。 我使用如下行创build这些容器: docker run -it –rm someImage bash 每当我退出bash,我的容器就会随着所有敏感文件一起消失,这正是我想要的。 如果我使用Docker容器,那么我不需要记住删除这些文件。 这个解决scheme比把文件放在/ tmp中还好,因为在我停止使用它们之后,所有的文件都被删除了。 问题是当我的物理机器由于某种原因死亡。 例如,如果我在电力电缆上旅行。 发生这种情况时,我的容器进入停止状态,其他人可以使用重新启动容器 docker start myContainerId 有没有什么办法来改进我创build我的容器来实现我想要的方式? 一种方法是在启动时将东西放在主机的SystemV上以清除这些容器,但是我想知道Docker是否没有更好的方法来处理这个问题。

Web服务器和数据库服务器在Docker容器中

对于Docker,我是一个新手,想知道是否有任何可能的方法可以找出Docker如何用来保护Web服务器和数据库服务器。 我有Apache Web服务器和MySQL数据库服务器启动和运行,并完美运作(我正在使用XAMPP)。 我只想知道是否有任何方法可以使用Docker来保护数据库服务器中保存的数据(data =login到我的网站的用户的用户名和密码)。 问候。

如何安全地连接到运行在虚拟机上的mysql服务器

我想通过在虚拟机中隔离它来提高数据库的安全性。 这里是我有什么想法 运行boot2docker的虚拟机中的docker容器上的-mysql服务器。 -virtualbox主机只有networkingconfiguration,所以我的应用程序可以连接到虚拟局域网上的服务器,stream量不能从外面看到。 使用AES的数据encryption。 我不知道如何安全地存储密钥(即时通讯使用DPAPI),哪些是build立应用程序和虚拟服务器之间的连接的最安全的方法。

允许非泊坞窗组启动容器

据我所知,docker组成员基本上等于root权限。 我需要允许一个用户执行特定的容器,但我不希望他是根等效的。 因为制作bash脚本setgid是个相当麻烦的问题,所以我正在考虑编写一个简短的可执行文件,这个文件将被设置为docker组,并且只会启动特定的docker容器。 这个特定的可执行文件将是+ x并由另一个用户拥有。 任何用户可以启动它的副作用是可以接受的。 这会给docker组带来什么安全感吗? 或者是微不足道的打破? 我怀疑我是第一个想要这个的人,这通常如何解决?