我有一个全新安装在docker集装箱内运行的Ubuntu 14.04。 我有一个工作的networking连接: PING 93.184.216.34 (93.184.216.34) 56(84) bytes of data. 64 bytes from 93.184.216.34: icmp_seq=1 ttl=53 time=71.3 ms 不过,我似乎无法parsing域名: ping: unknown host www.example.com 它应该使用OpenDNS >> cat /etc/resolv.conf nameserver 208.67.222.222 nameserver 208.67.220.220 OpenDNS IP地址响应ping PING 208.67.222.222 (208.67.222.222) 56(84) bytes of data. 64 bytes from 208.67.222.222: icmp_seq=1 ttl=53 time=3.57 ms 但是域名parsing仍然不起作用。 可能是什么原因造成的,我怎么诊断和解决这个问题呢?
这个问题似乎在表面“卷”上有一个简单的答案,但我相信这可能会更复杂一点。 说明 我们有三个服务,每个服务都可以有多个容器在单个或多个主机上运行。 容器A是我们的API容器 容器B是我们的队列容器 容器C是我们的任务计划(cron)容器 所有这些容器运行相同的git-repo /源代码(PHP)。 唯一的区别是在容器中运行的进程: 容器A正在运行php-fpm 容器B正在运行一个队列监视守护进程(artisan队列) 容器C正在运行执行任何cron任务的crontab 目前在每个“服务”的dockerfile中,我们下载了git repo并启动相关的进程。 虽然最好有一个“数据”容器,以某种方式将代码提供给所有上述提及的容器。 题 我们如何创build一个充当其他容器“代码库”的容器? 将源文件从其文件系统安装到其他“服务”容器的文件系统中?
我有一个在Docker容器中运行的备份脚本,当磁盘使用率变低时,我希望它发送给我一封电子邮件。 这是脚本: #!/bin/bash CURRENT=$(df /data | grep / | awk '{ print $5}' | sed 's/%//g') THRESHOLD=90 echo "$CURRENT" if [ "$CURRENT" -gt "$THRESHOLD" ] ; then echo "Low Disk Space Alert: ${CURRENT}% used" mail -s 'Disk Space Alert' [email protected] << EOF Backup server remaining free space is critically low. Used: $CURRENT% EOF fi 问题是,我无法设法让邮件在容器内工作。 […]
从一个AWS EC2实例(运行docker ),我试图curl我的docker容器托pipe的Web服务。 鉴于: [ec2-user]$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b56fa0d76d5c $REGISTRY/$WORK/metrics:v0.1.0 "/bin/sh -c 'sh /root" 3 minutes ago Up 3 minutes 0.0.0.0:80->80/tcp, 0.0.0.0:9000->9000/tcp insane_leakey 我可以从容器中打开Web服务: [ec2-user]$ docker exec -it b56fa0d76d5c bash root@b56fa0d76d5c:/# curl 'http://localhost/health' Request is missing required query parameter 'apiName' 但是,我不能从主持人: [ec2-user]$ curl 'http://localhost/health' curl: (56) Recv failure: […]
我已经在自定义端口(8080)上的泊坞窗容器中运行Web服务。 在这里,我试图运行一个容器,将相关容器的端口暴露(如图所示 ),但无济于事。 docker run -p 127.0.0.1:8080:8080 beatthemarket run wait 但我似乎无法到达该Web服务端点。 http://127.0.0.1:8080 HTTP://本地主机:8080 我)我是否正确地暴露容器的端口? ii)如果端口不可用,或者如果我的web服务没有被调用(如果能够将容器放入容器并仅仅curl端点将会很好),如何排除故障。 我的Dockerfile可以在这里看到。 我正在使用Adzerk的boot-clj基础镜像。 实际上运行docker,每次检索一堆瓶子。 然后启动块( wait任务),这是我想要的(一个Web服务器将处理Web请求)。 而这就是我迷失的地方。 在docker中启动,就像我所要求的一样。 但我似乎无法得到根URI 应该返回的基本的Hello World消息。 $ docker run -p 127.0.0.1:8080:8080 beatthemarket run wait Downloading https://github.com/boot-clj/boot/releases/download/2.5.5/boot.jar… Retrieving dynapath-0.2.3.jar from https://clojars.org/repo/ Retrieving pod-2.5.5.jar from https://clojars.org/repo/ Retrieving shimdandy-impl-1.2.0.jar from https://repo1.maven.org/maven2/ Retrieving core-2.5.5.jar from https://clojars.org/repo/ … Implicit target dir […]
我有一个关于停止数据库容器的问题。 我有一个运行postgresql的docker镜像 。 当我用这个图像创build一个容器时: sudo docker run –name db -d asg1612 / postgresql 它运行命令: /usr/lib/postgresql/9.3/bin/postgres -D /var/lib/postgresql/9.3/main -c config_file = / etc / postgresql / 9.3 / main / postgresql.conf 并将目录/ var / lib / pgdata创build为容器卷 我停止与容器: sudodocker停止分贝 数据库会优雅地停止吗? 我会有损坏的数据吗?
据我所知,docker运行容器与自己的IP,并完全开放的端口,在桥接口docker0。 比方说我启动一个容器,它有自己的IP:172.17.0.11,我有一个虚拟以太网接口eth0.1,公网IP为93.xxx 如何将eth0.1转发到Docker容器,以便通过eth0.1 IP访问容器? 我可以一次转发所有端口吗? (也许用一个脚本) 如何禁用docker默认行为,以便每个容器只有在docker0接口上获得IP,我手动设置转发? @Xavierlucas 我把它连接起来,因为我认为那里解释得更好。 如果你检查debianconfiguration文件,我添加到/ etc / net / interfaces文件中: post-up /sbin/ifconfig eth0:X IP.OF.FAIL.OVER netmask 255.255.255.255 broadcast IP.OF.FAIL.OVER post-down /sbin/ifconfig eth0:X down 这样我有一个虚拟接口(eth0:0),它有一个由我的提供商转发的公有IP。 我认为路由是由供应商完成的,因为在我的服务器上没有额外的路由或configuration 注意: 有一个后续问题 为什么端口转发不能在这个设置中工作?
我使用HAPROXY容器作为虚拟HPC群集的入口点。 根据前缀,请求被转发到不同的容器。 :80 / foswiki / – >:80 / foswiki / :80 / kibana / – >:80 / kibana / :80 / graphite-api / – >:80 / graphite-api / … 我使用的configuration非常简单: 前端http-in 绑定*:80 acl uri_foswiki path_beg / foswiki use_backend srv_foswiki if uri_foswiki #gitlab default_backend srv_gitlab 后端srv_foswiki 平衡roundrobin cookie SERVERID插入 选项httpclose 选项forwardfor 服务器foswiki 172.17.0.3:80 cookie 问题是有没有前缀直接作为根服务的网站服务器。 […]
我正在使用tutum来部署一个涉及web和db的应用程序。 这里是tutum.yml文件的相关部分。 db: image: 'postgres:latest' ports: – '5432:5432' restart: always volumes_from: – data web: image: 'rchamarthi/djangoweb:latest' command: 'bash -c ''python manage.py makemigrations && python manage.py migrate && /usr/local/bin/gunicorn django_project.wsgi:application -w 2 -b :8000''' expose: – '8000' links: – db restart: always volumes: – /usr/src/app/static working_dir: /usr/src/app/ 由于web有一个链接到数据库,IAM期待“数据库”主机的详细信息被添加到Web容器的/ etc / hosts文件,但我什么也没有看到。 在Web容器中 # cat /etc/hosts 172.17.0.50 […]
我有一个运行环境variables文件的容器如此装载: docker run -d –env-file ./env.list my/image ,一切工作正常,现在我已经更新了我的./env.list文件,并希望反映更新的文件。 试图重新启动容器,但没有奏效。