Questions tagged «docker»

Docker是一个开源项目,可自动在软件容器内部署应用程序。

13
如何在Nginx.conf中使用环境变量
[从https://stackoverflow.com/questions/21933955交叉发布和编辑,因为对于StackOverflow来说,它过于像sysadmin。] 我有一个运行Nginx的Docker容器,该容器链接到另一个Docker容器。第二个容器的主机名和IP地址在启动时作为环境变量加载到Nginx容器中,但是在此之前是未知的(它是动态的)。我希望我nginx.conf使用这些值-例如 upstream gunicorn { server $APP_HOST_NAME:$APP_HOST_PORT; } 如何在启动时将环境变量放入Nginx配置中? 编辑1 在下面建议的答案之后,这是整个文件: 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 …
183 nginx  docker 

9
Docker容器时间和时区(不会反映更改)
Docker容器从哪里获取时间信息?我已经从基本的ubuntu:trusty映像创建了一些容器,当我运行它并请求“ date”时,我得到了UTC时间。 有一段时间我通过在Dockerfile中执行以下操作来解决此问题: RUN sudo echo "America/Los_Angeles" > /etc/timezone 但是,由于某种原因而停止工作。在网上搜索时,我看到了以下建议: docker run -v /etc/timezone:/etc/timezone [image-name] 这两种方法都可以正确设置时区! $ cat /etc/timezone America/Los_Angeles $ date Tue Apr 14 23:46:51 UTC 2015 有人知道会给什么吗?
135 date  timezone  docker 


10
您可以在新的Windows 10(Ubuntu)bash用户空间上本地运行Docker吗?
我的理解是,在其他操作系统上运行docker的主要限制是使Linux容器成为可能。(当然对于Macs)。 最近,Microsoft宣布了一个本机运行在Windows 10上的Ubuntu linux 用户模式的beta版。它可以在Windows上运行以ELF格式编译的二进制文件(不同于cygwin需要编译)。 我的问题是:您可以在新的Windows 10(Ubuntu)bash用户空间上本地运行Docker吗?

3
运行docker映像时如何覆盖CMD?
我想检查由其他人创建的,同时指定了入口点和cmd的docker映像,例如: ENTRYPOINT ["/usr/sbin/apache2ctl"] CMD ["-D", "FOREGROUND"] 我目前正在: docker run --interactive --tty --entrypoint=/bin/bash $IMAGE --login 有没有办法覆盖CMD为空(因此我不必使用“ --login”)?
123 docker 

5
如何处理Docker容器中的安全更新?
在将应用程序部署到服务器上时,应用程序本身与捆绑在一起的东西与平台(操作系统和已安装的程序包)期望提供的东西之间通常存在分隔。其中一点是,平台可以独立于应用程序进行更新。例如,当需要紧急将安全更新应用到平台提供的软件包而不重建整个应用程序时,这很有用。 传统上,仅通过执行程序包管理器命令来应用安全更新,以在操作系统上安装程序包的更新版本(例如RHEL上的“ yum更新”)。但是随着诸如Docker之类的容器技术的出现,容器映像实际上将应用程序和平台都捆绑在一起,如何使具有容器的系统保持最新状态?主机和容器都有各自独立的软件包集,需要在主机上进行更新和更新不会更新容器内的任何软件包。随着RHEL 7的发布,尤其是Docker容器成为特色,很高兴听到Redhat推荐的处理容器安全性更新的方法是什么。 关于以下几种选择的想法: 让软件包管理器更新主机上的软件包将不会更新容器内的软件包。 必须重新生成所有容器映像以应用更新似乎打破了应用程序与平台之间的分隔(更新平台需要访问生成Docker映像的应用程序构建过程)。 在每个正在运行的容器中运行手动命令似乎很麻烦,并且在下次从应用程序发布工件更新容器时,更改有被覆盖的风险。 因此,这些方法似乎都不令人满意。



5
如何调试Docker容器初始化?
我对容器有问题,即使它构建完美,也无法正常启动。原因是我已添加到Dockerfile中的解决方法(因为具有自配置的/ etc / hosts路由) RUN mkdir -p -- /lib-override /etc-override && cp /lib/libnss_files.so.2 /lib-override ADD hosts.template /etc-override/hosts RUN perl -pi -e 's:/etc/hosts:/etc-override/hosts:g' /lib-override/libnss_files.so.2 ENV LD_LIBRARY_PATH /lib-override 显然那里有一些错误,但是我想知道如何在运行时获取有关docker正在做什么的更多信息。例如,这有效: $ docker run image ls usr bin ... 但这不是: $ docker run image ls -l $ 日志中没有任何内容,我也无法调用交互式外壳。我可以使用strace看看发生了什么,但我希望有更好的方法。 有什么方法可以将docker设置为更详细? 编辑:感谢安德鲁·D。我现在知道上面的代码有什么问题(我把它留了下来,所以他的回答可以理解)。现在的问题仍然是我如何调试这样的东西,或者深入了解为什么ls -l失败,而ls没有失败。 编辑:-D = true可能会提供更多输出,尽管在我来说不是...
92 docker  debug 

2
如果容器没有来宾OS,为什么我们在Docker上使用OS Base Image?
我刚刚开始研究Docker,这让我有些困惑。正如我在Docker网站上阅读的那样,容器与虚拟机不同。据我了解,容器只是一个沙箱,在其中运行了整个隔离的文件系统。 我还读到一个容器没有安装来宾操作系统。相反,它依赖于底层OS内核。 一切都很好。我感到困惑的是,有以操作系统命名的Docker映像。我们看到诸如Ubuntu,Debian,Fedora,CentOS等映像。 我的意思是:这些图像是什么?基于Debian映像创建容器与创建虚拟机并安装Debian有何不同? 我以为容器没有安装Guest OS,但是当我们创建映像时,我们将它们基于以一个OS命名的某个映像。 另外,在我看到的示例中docker run ubuntu echo "hello world",似乎我们正在使用Ubuntu来旋转VM,并使其运行command echo "hello world"。 用与我们执行操作相同的方式docker run -it ubuntu /bin/bash,似乎我们正在使用Ubuntu来启动VM,并使用命令行对其进行访问。 无论如何,那些以操作系统命名的映像是什么?使用这些映像之一运行容器并使用相应的来宾OS启动VM会有何不同? 这个想法是我们只与主机操作系统共享内核(因此,我们可以访问底层机器硬件资源,而无需虚拟化硬件),但仍按顺序使用容器上每个不同系统的文件和二进制文件支持我们想要运行的任何应用程序?


5
删除Docker数据卷?
正式的Docker文档提到我需要docker rm -v containername专门删除数据卷。但是,如果您已经删除了引用特定数据量的所有容器,该怎么办?
59 docker 

2
下载Docker映像以传输到非互联网连接的计算机
我在我的笔记本电脑已连接互联网但受到严格控制的办公室里工作。我不允许在上面安装未经授权的软件。 我的开发工作站完全可以与我联系,但是没有互联网连接。 我有什么办法可以从集线器中下载Docker映像作为文件,然后可以将其潜行到我的开发工作站?类似于我如何下载RPM或Ruby Gems并将它们刻录到CD?还是使用“ docker pull”命令下载图像的唯一方法?

4
Vagrant,Docker,Chef和OpenStack(或类似产品)之间的关系?
我是一名Web开发人员,但我对一些管理任务也很感兴趣。因此,从纯管理到开发人员的新转变对我来说很方便。 无论如何,我有一些问题需要解决。也许没有,所以我想寻求帮助以进行澄清。 基本上,我想介绍的是四种类型的软件(据我了解)。确切的产品无关紧要,您可以放置​​任何类似的软件作为替代: 流浪汉:据我了解,是要自动创建和管理VM:设置,启动和停止它们。可以使用本地VM或远程(例如在云平台上)完成此操作。 Docker:基于一些Linux内核概念的“轻量级VM”,可用于独立运行进程,例如在共享Web托管环境中。 Chef:一种用于设置和配置操作系统(例如在VM内部)的工具。 OpenStack:一种工具,可让您构建自己的私有云,因此可与AWS之类的东西相媲美。 问题1:我的解释正确吗,还是我对其中某些(或全部)消费有误? 问题2:如何混合所有这些工具?那有意义吗? 根据我的想象和理解,您可以 使用OpenStack构建自己的云, 使用Vagrant来管理在云中运行的VM, 使用Chef设置这些VM 最后使用Docker在VM内部运行进程。 这个对吗?如果是这样,您能给我建议如何开始使用所有这些功能吗(同时很多,而且我还不知道从哪里开始)?

7
如何为正在运行的容器指定主机名?
我在运行的Docker容器上设置主机名时遇到问题。启动映像后,我也无法理解如何指定主机名。 我从下载的图像启动了一个容器: sudo docker run -p 8080:80 -p 2222:22 oskarhane/docker-wordpress-nginx-ss 但是我忘了通过指定主机名-h;容器正在运行时,如何指定主机名?
51 linux  lxc  docker 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.