Articles of Docker

推送到本地dockerregistry给连接重置错误

我试图按照本指南创build一个私人的Dockerregistry。 我已经下载并标记了一个Ubuntu映像,并创build了一个registry容器,现在我打算把它推到我的registry中,但是当我调用sudo docker push localhost:6000/Ubuntu我得到以下输出: The push refers to a repository [localhost:6000/ubuntu] Put http://localhost:6000/v1/repositories/ubuntu/: http: can't write HTTP request on broken connection 所有我已经能够find的是,“不能写HTTP请求”的错误是一个Go错误,但不幸的是,我一直无法find任何有关我如何可以在Docker中解决它。 我也试图findDocker命令的日志,所以我可以尝试获取有关该问题的更多详细信息,但似乎日志只适用于容器,而不是在容器上运行此日志。 我怎样才能解决这个错误? UPDATE 我只是在没有任何改变的情况下再次运行该命令并得到了一个不同的错 Put http://localhost:6000/v1/repositories/ubuntu/: read tcp [::1]:33417->[::1]:6000: read: connection reset by peer UPDATE2 再一次,没有改变,现在得到: Put http://localhost:6000/v1/repositories/ubuntu/: EOF UPDATE3 在弄乱了一下后,我发现我试图推送到我的registry的图像确实出现在我的泊坞窗图像列表中,但是我似乎无法将其拉下。 UPDATE4 在搞乱之后,似乎分配给我的私有registry的端口只能侦听IPV6,而不是IPV4。 根据这个 git线程, netstat -ntlp好像只能监听IPV6是正常的,但是在运行telnet localhost , netstat -ntlp和iptables -t […]

无法启用cgroups内存控制器

我在DigitalOcean上安装了Debian 8.5,内核版本为3.16.7-ckt25-2 我正在尝试为Docker启用cgroups内存控制器。 我在/ etc / default / grub中添加cgroup_enable=memory swapaccount=1到GRUB_CMDLINE_LINUX_DEFAULT ,运行update-grub,重启服务器,但是不起作用。 mount | grep cgroup | grep mem输出 mount | grep cgroup | grep mem 当它显示如下所示的内容时, mount | grep cgroup | grep mem什么都不显示: cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory) 在AWS上使用相同的内核版本正常工作。

如何使Docker自动执行内核升级并重新启动?

简单的问题:Docker,Ubuntu 16.04,自动安全升级和重启。 那么我怎样才能确保在自动安全升级和重新启动后,Docker尝试启动容器之前,已经安装了最新的linux-image-extra-`uname -r` ? 详细的问题:(下面的一切) 我正在使用Docker和Docker-Compose来部署我的Web应用程序。 我已经configuration了Docker容器在重启时自动启动。 而且,我configuration了自动安全升级,包括自动重新启动。 这意味着不时地,一个新的内核被自动安装,服务器重新启动。 在此之后,Docker将无法启动,因为: 之前的存储驱动程序“aufs”失败:驱动程序不支持 (说service docker start )。 要解决这个问题,需要: sudo apt-get install linux-image-extra-`uname -r` 所以我已经添加到crontab中: root@edgoew1dal16gandi:~# crontab -l … @reboot apt-get install linux-image-extra-`uname -r` 2>&1 >> /tmp/cron-edm.log 但是这个失败,因为:(我在/tmp/cron-edm.log文件中看到) Err:1 http://security.ubuntu.com/ubuntu xenial-security/main amd64 linux-image-extra-4.4.0-24-generic amd64 4.4.0-24.43 Temporary failure resolving 'europe-west1.gce.archive.ubuntu.com' 但是,如果我重新启动后手动运行命令,那么它的工作原理。 显然, apt-get失败了,因为它重启后运行得太早了? 因此,我想知道,我怎么能做到这一点: apt-get install linux-image-extra-`uname -r` […]

Drupal 8 Nginx错误没有这样的文件或目录的任何路线

我在Nginx + PHP7 + PHP 7 FPM的Docker上运行Drupal 8.1.2,并且链接到另一个基于Alpine Linux的PostgreSQL Docker镜像。 在成功运行Drupal安装(在core / install.phpurl)并设置网站名称,pipe理员名称和其他细节之后,它在我点击提交button后立即抛出404。 我只能访问/update.phpurl。 错误日志 : 2016/06/17 16:32:49 [error] 11#0: *80 open() "/usr/share/nginx/html/404.html" failed (2: No such file or directory), client: 172.17.0.1, server: _, request: "GET /favicon.ico HTTP/1.1", host: "localhost" 2016/06/18 11:47:32 [error] 13#0: *40 open() "/var/www/html/user/1" failed (2: No such file or directory), client: […]

在docker上下文中,我们是否需要本地主机数据库连接的密码?

我的问题是与我的具体环境有关:我在泊坞窗容器中运行一个Web应用程序,在另一个容器中运行一个数据库。 我使用docker撰写来运行这两个容器: 我的networking应用程序链接到与所有其他应用程序容器共享的networking和我的代理容器(它绑定到主机接口) 我的数据库容器链接到一个特定的networking,只在我的web应用程序容器和我的数据库容器之间共享 我已经在两个容器之间设置了密码authentication。 但现在,我正在向后看,我想知道在这方面是否真的有用。 由于我的应用程序容器和数据库容器之间的networking是由docker构build的,所以没有其他容器可以连接它并尝试访问我的数据库。 那么为什么设置一个密码? 我想我的问题是相对于docker专用networking提供的安全性,我实际上不知道它是如何工作的。 任何build议,将不胜感激。

无法用pip安装

我试图用下面的命令安装ansible: docker run -ti –rm ubuntu:14.04 bash echo "===> Updating cache…" && \ apt-get update && \ \ \ echo "===> Installing sudo…" && \ apt-get install -y sudo && \ \ \ apt-get install python-pip python-dev -y && \ apt-get install python-apt -y -q && \ \ \ echo "===> Installing Ansible 2.1.0.0…" && […]

docker集装箱挂起没有明显的错误

更新:问题在版本1.9.1上报告,并不存在于最新版本的Docker中。 我有一个运行在elasticbeanstalk中的docker应用程序,正常运行10-11天后会挂起。 该应用程序每分钟运行一个cron作业。 (我的)没有长时间运行的应用程序。 一旦挂起,它不再响应HTTP请求。 以下docker命令挂起: top , exec , restart docker logs响应,但没有显示错误。 从这一点我不知道如何进一步debugging。 有任何想法吗? docker inspect显示: { "Id": "a9e7ed019ce543073c16507036d1a5579817a0e0abf79e6f79949bcc96dca444", "Created": "2016-06-16T22:29:57.448398251Z", "Path": "/usr/local/bin/init.sh", "Args": [], "State": { "Status": "running", "Running": true, "Paused": false, "Restarting": false, "OOMKilled": false, "Dead": false, "Pid": 4406, "ExitCode": 0, "Error": "", "StartedAt": "2016-06-16T22:29:58.459393626Z", "FinishedAt": "0001-01-01T00:00:00Z" }, "Image": "6aa1c5468fbe4102e7428d4325f666868498b9880c9dc3f14c30c2a6804a25a5", "ResolvConfPath": "/var/lib/docker/containers/a9e7ed019ce543073c16507036d1a5579817a0e0abf79e6f79949bcc96dca444/resolv.conf", […]

docker:FTP / SFTP到/ var / www /docker集装箱?

我试图在我的VPS上运行Docker,以最大限度地使用我的服务器。 我的服务器主要运行LAMP堆栈,但我也想拥有其他基于Docker的图像应用程序。 所以,我做了一个运行LAMP的Docker容器。 问题是,我如何设法将file upload到容器(Apache的/var/www/在那里)? SFTP是我一直使用的,但是我找不到SSH到Docker容器的方式,所以我可以访问容器中的文件系统,所以我更喜欢这个。 但如果有更好的练习,我愿意适应!

连接到AWS EC2容器服务泊坞窗失败

我正在尝试build立EC2集装箱服务。 我使用以下命令: aws ecr get-login –region eu-west-1这给我一个dockerlogin看起来像这样: docker login -u AWS -p **VERY LONG KEY** -e none https://MYID.dkr.ecr.eu-west-1.amazonaws.com 当我运行这个时,我得到以下错误: Warning: '-e' is deprecated, it will be removed soon. See usage. Cannot connect to the Docker daemon. Is the docker daemon running on this host? 我遵循他们的“FirstRun”教程,可以在这里find。 我究竟做错了什么? 作为参考:我已经build立了一个IAM用户,并将密钥添加到aws configure命令中。

在GlusterFS集群中运行Docker

我在复制中的三台服务器上有一个GlusterFS集群,我想在里面运行Docker,所以它在所有副本上都可用。 我想达到这个目的的原因是因为我不想为每个网站设置每个服务器。 是否有可能从所有的服务器提供一个Docker容器?