Tag:

如何更改Docker的默认子网大小?

我不知道是否有任何方式来影响默认的子网大小和创buildnetworking时使用的地址池没有任何参数。 重现问题的步骤:1)获取一个新的VM与Docker(Ubuntu 16.04,在我的情况下,Docker 1.12.3)2)尝试创build50个networking: for i in {1..50}; do docker network create net-$i; done 在某些时候,你会开始犯错3)看结果: for i in $(docker network ls -q); do docker network inspect –format='{{.Name}} {{.IPAM.Config}}' $i; done 输出如下所示: net-1 [{172.18.0.0/16 172.18.0.1/16 map[]}] net-2 [{172.19.0.0/16 172.19.0.1/16 map[]}] net-3 [{172.20.0.0/16 172.20.0.1/16 map[]}] net-4 [{172.21.0.0/16 172.21.0.1/16 map[]}] net-5 [{172.22.0.0/16 172.22.0.1/16 map[]}] net-6 [{172.23.0.0/16 172.23.0.1/16 map[]}] […]

Ping工作,但Java代码失败,主机在Docker中无法访问

我被困在docker和Javanetworking问题。 我有几个容器通过docker-compose启动。 有些人需要和别人交谈。 例如一个容器启动RabbitMQ,另一个容器连接到它。 一切工作正常,如果我在与容器名称连接的URL中使用。 但是,我想使用实际的docker主机名称地址(以便我使用的configuration文件可以从外部docker容器以外的机器使用),这不正常。 假设我有两个容器: 的RabbitMQ 的MessageConsumer 如果messageconsumerconfiguration为访问amqp://rabbitmq:5672 ,则连接正常。 但是我的容器正在主机docker.mycompany.com上运行。 如果我使用amqp://docker.mycompany.com:5672作为url,那么使用java.net.NoRouteToHostException: Host is unreachable messageconsumer java代码barfs java.net.NoRouteToHostException: Host is unreachable 。 但是,如果我在messageconsumer容器中启动一个shell,那么ping docker.mycompany.com可以工作了! 为什么shell和ping查找主机地址,但不是Java? 我的图像基于openjdk:高山。 任何帮助感激!

Docker IISnetworking连接到外部networking

这里完全是Dockers的新手。 我有一个非常简单的.NET 45应用程序,它构build在ServiceStack框架上。 他们主要是API的Web服务。 Docker映像构build得很好,容器部署良好,运行正常,没有问题。 我正在使用Windows容器(而不是docker for windows)。 不过,我有一个特定的Web服务调用第三方API(传统),我们正在使用SOAP客户端来做到这一点。 但是,这个Web服务总是抛出EndpointNotFoundexception: “ https://externalapi.asmx上没有可以接受消息的端点监听,这通常是由地址或SOAP操作不正确引起的,请参阅InnerException(如果存在)以获取更多详细信息。 我已经阅读了Windows NAT问题。 我的直觉是自给式的容器是孤立的,因此没有外部互联网连接到外部世界。 有什么我需要configuration我的微软/ iis图像? 我的Docker文件: FROM microsoft/iis SHELL ["powershell"] RUN Install-WindowsFeature NET-Framework-45-ASPNET ; \ Install-WindowsFeature Web-Asp-Net45 COPY \ MyAwesomeWebsite RUN Remove-WebSite -Name 'Default Web Site' RUN New-Website -Name 'MyAwesomeWebsite' -Port 80 \ -PhysicalPath 'c:\MyAwesomeWebsite' -ApplicationPool '.NET v4.5' EXPOSE 80

在docker-compose中运行Django

在Docker容器中启动django项目时出现问题。 我的Dockerfile如下所示: FROM python:2.7 ADD . /code WORKDIR /code RUN pip install -r requirements.txt EXPOSE 8000 requirements.txt包含成功安装django的单行Django 。 我docker-compose.yml有以下内容: version: '2' services: web: build: ./web command: python manage.py runserver 0.0.0.0:8000 ports: – "8000:8000" volumes: – ./web:/code 要创build一个项目,我打电话给: docker-compose run web python django-admin.py startproject web . 其中崩溃与以下消息: python: can't open file 'django-admin.py': [Errno 2] No such […]

Docker的nginx代理主机

简短的介绍: 运行在docker上的Nginx,如何configurationnginx,以便将调用转发给主机。 详细描述: 我们有一个Web应用程序与后端的几个通信(让我们说rest1,rest2和rest3)。 我们负责rest1 。 让我们考虑,我开始rest1手动在我的电脑上运行2345端口。 我想nginx(在rest1运行)将所有调用redirect到rest1到我自己的运行实例(注意,实例在主机上运行,​​不是任何容器,也不在docker中)。 而rest2和rest3到一些其他docker节点或可能是一些其他的服务器(谁在乎)。 我正在寻找的是: docker-compose.ymlconfiguration(如果需要)。 nginxconfiguration。 提前致谢。

Docker堆栈部署滚动更新卷问题

我运行一个生产PHP-FPM / Nginx应用程序的docker,我想使用docker-stack.yml并部署到swarm集群。 这是我的文件: version: "3" services: app: image: <MYREGISTRY>/app volumes: – app-data:/var/www/app deploy: mode: global php: image: <MYREGISTRY>/php volumes: – app-data:/var/www/app deploy: replicas: 2 nginx: image: <MYREGISTRY>/nginx depends_on: – php volumes: – app-data:/var/www/app deploy: replicas: 2 ports: – "80:80" volumes: app-data: 我的代码是在我的registry中的app容器与图像。 我想更新我的代码与docker service update –image <MYREGISTRY>/app:latest但它不工作的代码没有改变。 我想它使用本地卷app-data 。 新的容器数据不覆盖卷数据是否正常?

为什么MySQL Docker容器会抱怨在使用Docker 17.03的秘密时必须定义MYSQL_ROOT_PASSWORD env?

我正在尝试修改Docker的Wordpress秘密示例(下面的链接)在我的Docker Compose设置(适用于Drupal)中工作。 https://docs.docker.com/engine/swarm/secrets/#/advanced-example-use-secrets-with-a-wordpress-service 但是,当'mysql'容器启动时,将输出以下错误: “错误:数据库未初始化,未指定密码选项您需要指定MYSQL_ROOT_PASSWORD,MYSQL_ALLOW_EMPTY_PASSWORD和MYSQL_RANDOM_ROOT_PASSWORD之一” 我使用“docker secret create”命令创build了秘密: docker secret create mysql_root_pw tmp-file-holding-root-pw.txt docker secret create mysql_pw tmp-file-holding-pw.txt 在运行上述之后,现在在群集环境中存在秘密“ mysql_root_pw ”和“ mysql_pw ”。 通过执行validation: docker secret ls 以下是我的docker-compose.yml文件中的相关部分: version: '3.1' services: mysql: image: mysql/mysql-server:5.7.17 environment: – MYSQL_ROOT_PASSWORD_FILE="/run/secrets/mysql_root_pw" – MYSQL_PASSWORD_FILE="/run/secrets/mysql_pw" secrets: – mysql_pw – mysql_root_pw secrets: mysql_pw: external: true mysql_root_pw: external: true 当我做“ docker堆栈部署MYSTACK ”,当'mysql'容器试图启动时,我得到上面提到的错误。 看起来像“ […]

无法将Docker作曲者部署到AWS ECS

尽pipe遵循了大量的教程和指南,包括官方文档,但在试图将我的docker集装箱部署到ECS时,我总是碰壁。 以下是我所做的: ecs-cli configure –cluster my-cluster ecs-cli up –keypair XXX –capability-iam –size 1 –instance-type t2.micro ecs-cli compose –file docker-compose.staging.yml up 我docker-compose.staging.yml是 version: '2' services: web: mem_limit: 128m image: nginx:latest ports: – "80:80" – "443:443" volumes: – src:/var/www – vhost.staging.conf:/etc/nginx/conf.d/site.conf – certificates:/etc/nginx/ssl links: – app depends_on: – app app: mem_limit: 128m image: groberts12/php7.1-fpm-base volumes: – src:/var/www […]

如何使用shell文件将parameter passing给docker-compose.yml

我有docker-compose.yml,如下所示: version: '2' services: eureka-server: image: some-dtr-name/some-orgname/some-reponame:some-versionname mem_limit: somememory environment: SPRING_PROFILES_ACTIVE: some-profile JAVA_OPTS: -Xms256m -Xmx512m ports: – "some-port:some-port" restart: always networks: – cloud networks: cloud: driver: bridge 我想传递一些-dtr-name,some-orgname,some-reponame,some-versionname,somememory,some-profile,some-profile,some-port作为docker-compose文件的参数。 我正在使用shell文件来完成这个任务。 #!/bin/bash some-dtr-name="$1" some-orgname="$2" some-reponame="$3" some-versionname="$4" somememory="$5" some-profile="$6" some-profile="$7" some-port="$8" docker-compose up 我该怎么做这个任务?

从容器中访问docker远程API

我试图从一个容器内访问Docker远程API,因为我需要启动其他容器。 主机地址是172.19.0.1 ,所以我使用http://172.19.0.1:2375/images/json获取图像列表(从主机, http://localhost:2375/images/json按预期工作。 连接被拒绝,我猜是因为Docker(用于Windows)在127.0.0.1而不是在0.0.0.0上侦听。 我试着改变configuration(从UI和daemon.json )添加条目: "hosts": ["tcp://0.0.0.0:2375"] 但守护进程无法启动。 我怎样才能访问API?