安装 Docker 后,当我尝试运行 Hello World 示例时出现错误:
Error response from daemon: Cannot start container 4145d0fccd96b904e4ab4413735f1129b8765429bad5be71dc8d5f4c0760666d:
failed to create endpoint high_saha on network bridge:
failed to add the host (veth7f6f907) <=> sandbox (veth788d9dc) pair interfaces: operation not supported
Run Code Online (Sandbox Code Playgroud)
(我刚刚将我的 Debian 服务器从 Wheezy 升级到 Jessie)
有谁知道为什么我会收到此错误?我在升级过程中错过了什么吗?
谢谢你的帮助。
由于强制门户和默认 Docker IP 范围的问题,我试图让 Docker 使用 198.18.0.0 范围,而不是 172.17.0.0,这与我住的火车上使用的强制门户冲突。
按照docs,我创建了/etc/docker/daemon.json,并将以下内容放入其中:
{
"bip":"198.18.0.0/16"
}
Run Code Online (Sandbox Code Playgroud)
这适用于 docker0,但它似乎没有影响任何其他网络,并且使用 docker compose 创建的第一个网络是 172.17.0.0,它重新创建了冲突。
我该怎么做才能更改所有docker 网络的默认子网(最好不必在每个撰写文件中声明我的自定义 IP 范围)?
我正在使用docker-compose.
一些命令喜欢up -d service_name或start service_name正在立即返回,如果您不希望运行的容器依赖于 shell 的状态,这非常有用,就像它们对常规up service_name. 一个用例是从某种连续的集成/交付服务器运行它。
但是这种运行/启动服务的方式并没有提供任何关于服务实际状态的反馈。
命令的Docker Compose CLI 参考up确实提到了相关选项,但是,对于 version 1.7.1,它与-d以下内容互斥:
Run Code Online (Sandbox Code Playgroud)--abort-on-container-exit Stops all containers if any container was stopped. *Incompatible with -d.*
我有 docker compose 文件与 PostgreSQL 和我的应用程序,如下所示:
version: '3'
services:
postgresql:
image: postgres:9.6.6
ports:
- 9932:5432
expose:
- "5432"
environment:
- POSTGRES_PASSWORD=pass
restart: always
volumes:
- /data:/var/lib/postgresql/data
myapp:
image: myapp
links:
- postgresql
depends_on:
- "postgresql"
restart: always
ports:
- "5000:5000"
Run Code Online (Sandbox Code Playgroud)
问题是restart: always当我杀死容器(使用 模拟应用程序崩溃docker kill)并且 docker-compose 不会重新启动我的容器时,策略似乎不起作用,即使退出代码是 137。当我使用restart: on-failure策略时,我观察到相同的行为。版本2和3docker-compose 的行为相同。我的系统是 Ubuntu Server 16.04 x64。
我的问题是:
我在 docker 容器中运行 Apache2,并且不想向磁盘写入任何内容,将日志写入 stdout 和 stderr。我已经看到了几种不同的方法来做到这一点(Supervisord 和 stdout/stderr, Apache 访问日志到 stdout),但这些看起来像是黑客。默认情况下没有办法做到这一点吗?
需要明确的是,我不想拖尾日志,因为这会导致将内容写入容器中的磁盘。
有没有办法在不影响主机的情况下动态(在运行时)设置 Docker 容器系统时间?
使用
hwclock --set --date "Sat Aug 17 08:31:24 PDT 2016"
Run Code Online (Sandbox Code Playgroud)
给出以下错误:
hwclock: Cannot access the Hardware Clock via any known method.
hwclock: Use the --debug option to see the details of our search for an access method.
Run Code Online (Sandbox Code Playgroud)
使用
date -s "2 OCT 2006 18:00:00"
Run Code Online (Sandbox Code Playgroud)
给出以下错误:
date: cannot set date: Operation not permitted
Run Code Online (Sandbox Code Playgroud)
用例:
我需要测试对时间敏感的软件(行为取决于日期)。
其他常见用例:
建议使用哪种方法来更新在 Amazon ECS 中运行的服务的容器?
该AWS文档说:“如果你已经更新了应用程序的泊坞图像,你可以创建一个新的任务定义与图像,并将其部署到您的服务,一次一个任务。” 这几乎是当前文档中当前可用的所有内容(2015 年 4 月 13 日)。
我是否理解正确,在 Amazon ECS 中更新我的应用程序容器的唯一方法是创建一个新任务,然后停止旧任务并启动新任务?
我已经成功地在 Core OS 和 Fleectl 中使用了“最新”标签。这样做的好处是不需要为新的更新更改 Docker 镜像的标签,因为重新加载服务将看到新的更改并更新容器(使用相同的标签“最新”)。
您使用哪种方法在 Amazon ECS 中使用更新的 docker 镜像更新您的服务?
该docker-compose run参考文献指出它可以--rm选择
运行后移除容器。
我想让它成为run我在docker-compose.yml.
所以,问题是:
docker-compose.yml吗?(INB4“使用 bash 别名,卢克!”:当然,我可以docker-compose.yml通过设置一些 bash 别名来强制执行此操作,alias docker-compose-run='docker-compose run --rm'但我感兴趣的是如何通过docker-compose.yml而不是通过某种外部方式来强制执行此操作。)
我注意到每个发布的端口都有 docker-proxy 进程在运行。这个过程的目的是什么?为什么需要用户空间 tcp 代理?
$ ps -Af | grep proxy
root 4776 1987 0 01:25 ? 00:00:00 docker-proxy -proto tcp -host-ip 127.0.0.1 -host-port 22222 -container-ip 172.17.0.2 -container-port 22
root 4829 1987 0 01:25 ? 00:00:00 docker-proxy -proto tcp -host-ip 127.0.0.1 -host-port 5555 -container-ip 172.17.0.3 -container-port 5555
Run Code Online (Sandbox Code Playgroud)
以及 docker 创建的一些相关 iptable 规则:
$ sudo iptables -t nat -L -n -v
Chain PREROUTING (policy ACCEPT 1 packets, 263 bytes)
pkts bytes target prot opt in out source destination
0 0 DOCKER …Run Code Online (Sandbox Code Playgroud) 我的目标是将 docker 容器的访问权限限制为几个公共 IP 地址。是否有一个简单、可重复的过程来实现我的目标?在使用 Docker 的默认选项时只了解 iptables 的基础知识,我发现这非常困难。
我想运行一个容器,使其对公共 Internet 可见,但只允许来自选定主机的连接。我希望设置 REJECT 的默认 INPUT 策略,然后只允许来自我的主机的连接。但是 Docker 的 NAT 规则和链妨碍了我的 INPUT 规则。
鉴于以下假设,有人可以提供一个如何实现我的目标的例子吗?
docker run -d -p 3306:3306 mysql我很高兴将容器仅绑定到本地 ip 地址,但需要有关如何正确设置 iptables 转发规则的说明,以便在 docker 进程和主机重新启动后继续存在。
谢谢!
docker ×10
containers ×2
iptables ×2
amazon-ecs ×1
apache-2.2 ×1
debian ×1
linux ×1
ovh ×1
time ×1
update ×1