Tag:

在AWS上重新启动Docker群中的计算机

我已经使用docker-machine在AWS上成功创build了5个VM的Docker群。 我用命令停止了一个虚拟机 docker-machine stop aws01 ,然后我试图docker-machine start aws01 但立即我得到一个错误 Error checking TLS connection: Error checking and/or regenerating the certs: There was an error validating certificates for host "5x.20x.23x.10x:2376": x509: certificate is valid for 5x.2x.17x.25x, not 5x.20x.23x.10x You can attempt to regenerate them using 'docker-machine regenerate-certs [name]'. Be advised that this will trigger a Docker daemon […]

Django的docker容器无法连接到MySQL容器,错误“无法连接到'db'(111)上的MySQL服务器”)

我正在尝试使用docker设置Django开发环境。 虽然我可以连接到主机上的MySQL。 但是Web容器无法连接到具有以下错误的mysql容器: django.db.utils.OperationalError: (2003, "Can't connect to MySQL server on 'db' (111)") 以下是dockerconfiguration和djangoconfiguration: ———搬运工,compose.yml ——— version: '2' services: web: build: . volumes: – ".:/code/current" ports: – "8000:8000" depends_on: – db – redis links: – db – redis command: ./manage.py runserver 0.0.0.0:8000 db: image: mysql:5.7 volumes: – "./.data/db:/var/lib/mysql" environment: – MYSQL_ROOT_PASSWORD=root – MYSQL_DATABASE=goat_db restart: always […]

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:高山。 任何帮助感激!

为什么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远程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?

无法在Docker容器和java进程中parsing主机

我正在运行基于运行java进程的高山linux(GoCD服务器)的docker映像。 java进程本身试图运行一些代码来克隆本地git仓库,但是我得到了一个Couldn't resolve hostexception。 我试图从容器内使用'git clone'手动克隆git仓库,并没有问题。 另外,我可以通过运行ping my-service-url.com而没有问题,也可以从主机上ping my-service-url.com相同的结果,从而在ping my-service-url.com容器内ping域。 看来Java解决名称有一些困难,但我不知道如何解决它。 我尝试用RUN echo 'hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4' >> /etc/nsswitch.conf创build一个新映像。 我读了另一个问题,可以解决它,但没有运气。 整个Dockerfile如下所示: FROM gocd/gocd-server:v17.5.0 RUN echo 'hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4' >> /etc/nsswitch.conf ADD json-config-plugin-0.2.jar /godata/plugins/external/json-config-plugin-0.2.jar ENTRYPOINT ["/docker-entrypoint.sh"] 我在AWS ECS上运行,ipv4转发设置为1,networking模式为bridge 。 我正在用尽想法。

多主机Docker在Swarm上组成应用程序

我有一个简单的撰写文件,我有三个服务A,B和C.A和B都依赖于C(即有links到C)。 这里是一个来自docker-compose.yml的简化摘录: kafka: image: spotify/kafka environment: ADVERTISED_PORT: 9092 ports: – "2181:2181" – "9092:9092" ServiceA: image: elsoufy/myimage command: ./mycommand -role producer -queue kafka:9092 ports: – "8080" ServiceB: image: elsoufy/myimage command: ./mycommand -role consumer -queue kafka:9092 我在AWS上设置了一个Docker swarm,并通过consul key-store启用覆盖networking。 我一直在挣扎一段时间才能正常工作(我不得不手动升级机器的内核到linux 3.16 )。 我使用的是Docker 1.9 Client: Version: 1.9.0 API version: 1.21 Go version: go1.4.3 Git commit: 76d6bc9 Built: […]

如何使用docker-compose在多个容器之间传递参数

您好,我想了解docker组成,以及如何传递容器之间的参数,以便我可以在我的应用程序中使用它。 我已经使用两个微服务构build了一个简单的Hello World应用程序 第一个微服务是使用java: //java code hello.java public class hello { public static void main(String args[]) { System.out.println("hello world from java"); } } //Dockerfile for creating this image FROM java:7 COPY hello.java . RUN javac hello.java CMD ["java","hello"] 同样的图像使用python我有两个文件: hello.py print("hello from python") 这个图像的Dockerfile是: FROM python:2.7 COPY hello.py . CMD ["python","hello.py"] 我的docker – 撰写文件: javacl: […]

在Docker中使用nginx服务Rails的预编译资产

目前我正在使用docker设置我的应用程序。 我有一个最小的应用程序,1个控制器。 你可以通过运行这些来获得我的设置: rails new app –database=sqlite –skip-bundle cd app rails generate controller –skip-routes Home index echo "Rails.application.routes.draw { root 'home#index' }" > config/routes.rb echo "gem 'foreman'" >> Gemfile echo "web: rails server -b 0.0.0.0" > Procfile echo "port: 3000" > .foreman 我有以下设置: Dockerfile : FROM ruby:2.3 # Install dependencies RUN apt-get update && apt-get […]

通过docker-compose生成的文件运行web rails g控制器没有权限编辑

我正在使用docker-compose为开发人员提供环境。 docker-compose build命令运行正常,运行在0.0.0.0:3000 docker-compose up命令的0.0.0.0:3000上。 当我试图运行命令docker-compose run web rails g controller生成一个操作的控制器,比生成的文件,但没有权限在主机上编辑。 Dockerfile FROM ubuntu:14.04 FROM ruby:2.2.1 # Run updates RUN apt-get update -qq && apt-get install -y build-essential libpq-dev # Set up working directory RUN mkdir /xyz/ WORKDIR /xyz/ # Set up gems ADD Gemfile /xyz/Gemfile ADD Gemfile.lock /xyz/Gemfile.lock RUN bundle install # Finally, add […]