Articles of Docker

Docker容器时间和时区(不会反映变化)

Docker容器何时获取他们的时间信息? 我从基本的ubuntu创build了一些容器:可信的图像,当我运行它并请求'date'时,我得到UTC时间。 有一段时间我通过在Dockerfile中执行以下操作来解决这个问题: RUN sudo echo "America/Los_Angeles" > /etc/timezone 但是,由于某种原因,停止工作。 在网上search我看到了下面的提示: docker run -v /etc/timezone:/etc/timezone [image-name] 这两种方法虽然正确地设置了时区! $ cat /etc/timezone America/Los_Angeles $ date Tue Apr 14 23:46:51 UTC 2015 任何人都知道什么给?

可以在Docker中运行Mac OS X吗?

可以在Docker中运行Mac OS X吗? 如果是这样,有什么build议如何? 它会运行无头,或者有可能远程连接到GUI? 谢谢, 西蒙娜

Vagrant,Docker,Chef和OpenStack(或类似产品)之间的关系?

我是一名Web开发人员,但我也对一些pipe理任务感兴趣。 因此,从纯粹的行政到开放的新行动对我来说非常方便。 无论如何,我有一些问题要把几件事情关系到一起。 也许没有,所以我想请求帮助澄清。 基本上,我想要把四种types的软件(从我的理解)。 确切的产品并不重要,你可以把任何类似的软件作为替代: Vagrant:从我的理解是自动创build和pipe理虚拟机:设置它们,启动和停止它们。 这可以使用本地VM或远程来完成,例如在云平台上。 Docker:基于几个Linux内核概念的“轻量级VM”,可以用来隔离运行进程,例如在共享的Web主机环境中。 厨师:设置和configuration操作系统的工具,例如在虚拟机内部。 OpenStack:一种工具,允许您构build自己的私有云,因此可以与AWS等相媲美。 问题1:我的解释是正确的,还是我对这些消费中的一些(或全部)有错? 问题2:我怎么能混合所有这些工具? 这会有什么意义吗? 在我的想象中,从我的理解来看,你可以去 使用OpenStack来构build自己的云, 使用Vagrant来pipe理在云中运行的虚拟机, 使用Chef来设置这些虚拟机 最后使用Docker在虚拟机中运行进程。 它是否正确? 如果是这样,你能给我一个如何开始使用所有这些build议(这是相当多的同时,我不知道从哪里开始)?

运行Docker镜像时如何覆盖CMD?

我想检查一个由别人创build的docker镜像,同时指定一个入口点和cmd,例如: ENTRYPOINT ["/usr/sbin/apache2ctl"] CMD ["-D", "FOREGROUND"] 我现在做: docker run –interactive –tty –entrypoint=/bin/bash $IMAGE –login 有没有办法覆盖CMD为空(所以我不必使用“ – login”)?

如何在Docker中删除图片标签而不删除图片本身?

比方说,我想标记一个Docker镜像,并打个拼写错误。 如何在不移除图片本身的情况下移除标签? 手册和Docker文档都没有提到删除标签。 docker tag 0e5574283393 my-imaj docker tag 0e5574283393 my-image # docker untag my-imaj # There is no "docker untag"!

删除Docker数据卷?

官方的Docker文档提到我需要运行docker rm -v containername来专门删除一个数据卷。 但是,如果您已经删除了引用特定数据量的所有容器,那么该怎么办?

代理错误502“原因:使用Apache 2.2.3(Debian)mod_proxy和Jetty 6.1.18从远程服务器读取时出错”

Apache正在接收80端口的请求,并通过端口8080将它们代理到Jetty The proxy server received an invalid response from an upstream server The proxy server could not handle the request GET /. 我的困境:一切正常正常 (快速请求,几秒或几十秒长的请求处理好 )。 处理请求需要很长时间 (几分钟?) 时会发生问题 。 如果我直接发送请求到端口:8080的Jetty请求处理确定。 所以问题可能会在我使用mod_proxy的 Apache和Jetty之间。 如何解决这个问题? 我已经尝试了一些与KeepAlive设置有关的“技巧” ,但没有运气。 这是我目前的configuration,有什么build议吗? #keepalive Off ## I have tried this, does not help #SetEnv force-proxy-request-1.0 1 ## I have tried this, does […]

如何在系统启动时自动启动Docker容器?

在系统启动时自动启动Docker容器的好方法是什么? 有什么办法可以在Ubuntu 14.04上做到这一点? 过去我使用supervisord来自动启动web应用程序。 但是这对于Docker来说并不合适。

如何处理Docker容器中的安全更新?

在将应用程序部署到服务器上时,应用程序与自身绑定的内容与从平台(操作系统和安装的包)提供的内容之间通常存在分离。 其中一点就是平台可以独立于应用程序进行更新。 例如,当需要紧急将安全更新应用于由平台提供的包而不重build整个应用程序时,这是非常有用的。 传统上,通过执行软件包pipe理器命令在操作系统上安装软件包的更新版本(例如,RHEL上的“yum update”),就可以应用安全更新。 但随着容器技术(如Docker)的出现,容器映像实际上将应用程序和平台捆绑在一起,保持容器系统最新的规范方法是什么? 主机和容器都有自己的独立套件,需要在主机上更新和更新,不会更新容器内的任何包。 随着特别推出Docker容器的RHEL 7的发布,听听Redhat推荐的处理容器安全更新的方法是很有意思的。 关于几个选项的思考: 让包pipe理器更新主机上的包不会更新容器内的包。 必须重新生成所有容器映像才能应用更新似乎会中断应用程序和平台之间的分离(更新平台需要访问生成Docker映像的应用程序构build过程)。 在每个正在运行的容器中运行手动命令看起来很麻烦,并且在下一次从应用程序发行构件更新容器时,更改有被覆盖的风险。 所以这些方法都不令人满意。

我如何在Nginx.conf中使用环境variables

[交叉发布和编辑下来从https://stackoverflow.com/questions/21933955,因为它被认为太sysadmin像StackOverflow。] 我有一个运行Nginx的docker容器,链接到另一个docker容器。 第二个容器的主机名和IP地址在启动时作为环境variables加载到Nginx容器中,但在此之前不知道(它是dynamic的)。 我想我的nginx.conf使用这些值 – 例如 upstream gunicorn { server $APP_HOST_NAME:$APP_HOST_PORT; } 如何在启动时将环境variables放入Nginxconfiguration中? 编辑1 这是在下面的build议答案后的整个文件: env APP_WEB_1_PORT_5000_TCP_ADDR; # Nginx host configuration for django_app # Django app is served by Gunicorn, running under port 5000 (via Foreman) upstream gunicorn { server $ENV{"APP_WEB_1_PORT_5000_TCP_ADDR"}:5000; } server { listen 80; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; location /static/ { alias /app/static/; […]