Articles of Docker

无法启动容器:无法在网桥上创build端点X:

我正在使用以下系统: [alexus@wcmisdlin02 Desktop]$ rpm -q docker docker-1.9.1-25.el7.centos.x86_64 [alexus@wcmisdlin02 Desktop]$ cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) [alexus@wcmisdlin02 Desktop]$ uname -a Linux wcmisdlin02.uftmasterad.org 3.10.0-327.13.1.el7.x86_64 #1 SMP Thu Mar 31 16:04:38 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux [alexus@wcmisdlin02 Desktop]$ 我指的是撰写文件参考 docker-compose.yml语法: [alexus@wcmisdlin02 Desktop]$ cat docker-compose.yml nginx: container_name: nginx image: nginx ports: – "80:80" [alexus@wcmisdlin02 Desktop]$ docker-compose up […]

如何防止Docker Compose将保存的卷复制到新的容器中?

我怎样才能防止docker-compose up从上一个会话复制保存的卷到一个容器? 实际上,我希望Docker Compose的行为类似于docker run ,它会在容器退出时丢弃私有卷的内容。

星号自动安装

我最近开始了一个项目,我需要在AWS基础架构中为我的客户自动安装Asterisk服务器。 客户已经拥有AWS基础架构。 我在想以下方法: a) AMI图像 : 安装Asterisk EC2实例并创build一个映像(帐户A)。 将此图像从帐户A移到客户帐户(帐户B),然后进行相应的configuration。 这可能是具有挑战性的,因为我不确定是否可以跨不同帐户传输AMI映像。 b) 安装脚本 : 根据以下内容创build一个shell脚本: http://wiki.freepbx.org/display/FOP/Installing+FreePBX+12+on+Ubuntu+Server+14.04+LTS c) 厨师 : 使用厨师服务器,并有EC2实例的启动脚本来安装Chef客户端,然后获取星号配方。 d) Docker安装 使用Docker容器并简化安装,这将需要安装docker,然后部署容器。 任何build议/反馈表示赞赏。

列出networkingDocker

我想知道是否有一个docker命令列出所有的容器与他们的networking? 我知道有dockernetworking检查,但这是检查networking。 我正在寻找一个命令,显示所有容器连接到哪个networking。

Docker如何Django + uwsgi / gunicorn + nginx?

我无法弄清楚部署一个使用uwsgi / gunicorn的Django项目的“正确”方式(我还没有决定使用什么,可能uwsgi,因为它有更好的性能,build议?)和nginx使用泊坞窗。 我看到有些人把所有东西放在同一个容器里。 我不是docker专家,但是容器应该只做一件事情。 所以,Django + nginx似乎是2而不是1。 现在,我的部署思路是: 一个容器与Django和uwsgi。 在Dockerfile的最后我运行uwsgi脚本。 这个容器暴露了端口8000 一个与django链接的nginx容器。 这暴露了端口80,并将请求代理到Django。 有没有其他办法可以做到这一点? 有一个教程,涵盖了这个案件更​​深入一点。 我需要一个坚实的生产,而不仅仅是testing我的电脑上的一些代码。

无法启动Docker容器

我用烧瓶,nginx和uwsgi构build了一个图像。 FROM ubuntu:14.04 MAINTAINER Ali Mezgani <[email protected]> RUN apt-get update && apt-get -y install python python-dev python-pip RUN apt-get -y install supervisor RUN apt-get -y install nginx COPY ./app /app RUN mkdir /var/log/uwsgi/ RUN pip install -r ./app/requirements.txt RUN rm -fr /etc/nginx/conf.d/* RUN rm -fr /etc/nginx/sites-enabled/* COPY app.conf /etc/supervisor/conf.d/app.conf RUN echo "daemon off;" >> /etc/nginx/nginx.conf […]

在虚拟化networking中,Docker> = 1.10时,HTTPS请求失败

我遇到了HTTPS连接无法从版本1.10.3或1.11.2的Docker容器内部build立的问题。 我尝试使用apt-get,curl和wget,并且一旦build立HTTPS连接,就会失败。 例如,以下命令失败: $ docker run -it ubuntu-curl curl -v https://www.google.com […] * gnutls_handshake() failed: Error in the pull function. * Closing connection 0 Docker镜像ubuntu-curl基于ubuntu:latest ,唯一的变化是apt-get update ; apt-get install curl apt-get update ; apt-get install curl 。 如果我使用HTTP而不是HTTP,它可以工作。 如果我从主机发出相同的命令,它的工作原理。 如果我启动容器没有networking虚拟化 (docker运行 – –net="host" ),它的工作原理。 如果我降级Docker(我试过1.6.2和1.9.1),它也可以。 任何提示可能是错误的? 我尝试了两台主机,Ubuntu 14 LTS和CoreOS stable,没有相关的定制 – 都运行在OpenStack集群中。 Iptables的主机(虽然我不明白为什么iptables应该只阻止HTTPstream量): $ […]

让我们通过nginx-proxy在Docker容器中encryptionSSL证书

目前我正在使用nginx-proxy将我的子域路由到不同的docker容器。 现在,我想添加一个SSL证书到我的个人云容器,但我没有正确设置它。 我做了什么: 通过certbot获得证书 我尝试通过执行./certbot-auto certonly获得SAN证书,我已经进入了每个我想要使用的子域。 证书已成功生成到etc/letsencrypt/live/www.mydomain.com 将证书挂载到owncloud容器并设置nginx-proxy 快速看看我的docker-compose.yml: nginx-proxy: image: jwilder/nginx-proxy ports: – "80:80" – "443:443" volumes: – /var/run/docker.sock:/tmp/docker.sock owncloud: image: owncloud expose: – 80 – 443 environment: – "VIRTUAL_HOST=owncloud.mydomain.com,www.owncloud.mydomain.com" – "VIRTUAL_PROTO=https" – "VIRTUAL_PORT=443" volumes: – "owncloud-data:/var/www/html" – "/etc/letsencrypt/live/www.mydomain.com:/root/ssl" 这里是我的/etc/apache2/sites-available/default-ssl.conf的摘录(当然是从自己云端容器的一个) <IfModule mod_ssl.c> <VirtualHost _default_:443> ServerAdmin webmaster@localhost DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined SSLEngine […]

Docker容器内的OpenLDAP客户端

我有一个运行CentOS 6的docker容器,使用非root用户和OpenLDAP。 当我使用getent passwd它只是返回来自/etc/passwd的数据。 configuration文件/etc/nsswitch.conf是相应的自定义(见下文), authconfig-gtk用于configuration。 有趣的是,我能够获取所有的用户信息 ldapsearch -x -b "dc=physik,dc=rwth-aachen,dc=de" 但是在Docker容器内不可访问或不使用。 我错了configuration或错过了什么? 已安装的软件包: openldap openldap-clients nss-pam-ldapd authconfig-gtk /etc/nsswitch.conf中 passwd: files ldap shadow: files ldap group: files ldap hosts: files dns bootparams: nisplus [NOTFOUND=return] files ethers: files netmasks: files networks: files protocols: files rpc: files services: files netgroup: files ldap publickey: nisplus automount: files ldap […]

通过jmx将Java应用程序访问到本地networking远程主机上的Docker容器中

我无法通过jmx(使用VisualVM)将java应用程序连接到本地networking远程主机上的Docker容器中。 问题的屏幕截图。 案例1:Java应用程序到客户端的Docker容器中: 连接到应用程序(端口6830) – 工作 连接到jmx(端口6831) – 工作 java -Dhttp.port=9010 \ -Dcom.sun.management.jmxremote.port=9011 \ -Dcom.sun.management.jmxremote.ssl=false \ -Dcom.sun.management.jmxremote.authenticate=false \ -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9012 \ -jar application.jar docker run -d \ -p 6830:9010 \ -p 6831:9011 \ –name container_name \ base_image \ setup.sh 情况2:在远程主机上没有Docker容器的Java应用程序: 连接到应用程序(端口6830) – 工作 连接到jmx(端口6831) – 工作 java -Dhttp.port=6830 \ -Dcom.sun.management.jmxremote.port=6831 \ -Dcom.sun.management.jmxremote.ssl=false \ -Dcom.sun.management.jmxremote.authenticate=false \ -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=6832 […]