Tag: 坞员

用Docker群自动configuration新的主机

如果docker swarm检测到没有足够的资源安排所有服务,您如何自动configuration新机器? 我使用一个设置与牧场主和docker群调度,如果没有足够的资源,服务创build失败: exit status 1: Creating stresstest2_workerb1_1 Creating stresstest2_workerb2_1 no resources available to schedule container 我可以调查此状态并在需要时调用docker机,但牧场主不会尝试重新计划丢失的服务。 我不知道是否有一个更集成的解决scheme,也许在docker群中的一个钩子,可以用来dynamic调用docker机创build或删除机器。 我目前正在使用Docker 1.11 + Docker Swarm或Swarm模式下的Docker 1.12来决定Rancher,所以任何解决scheme都可以。

为什么推送私人,安全的dockerregistry失败?

我想在自愈的AWS ECS群集上运行私有的,安全的,已authentication的dockerregistry。 群集设置完成并正常工作,但我努力获取registry:latest运行。 问题是,每次我推送一个图像,推动blob失败,并进入一个重试周期,除非我得到一个超时。 为了确保我的ECS设置不是阻塞器,我尝试使用Docker4Mac 1.12.0-a在本地设置一切。 首先,非常基本的设置工作。 我创build了我自己的registry映像版本,在那里我把我的TLS证书包和密钥以及必要的htpasswd文件直接放到映像中。 [我知道,这是不安全的,我只是做testing的目的]。 所以这里是我的Dockerfile : FROM registry:latest COPY htpasswd /etc/docker COPY server_bundle.pem /etc/docker COPY server_key.pem /etc/docker server_bundle.pem为我的域mydomain.com (CN = * server_bundle.pem有一个通配符证书作为第一个证书,其次是中间CA证书,所以客户端应该很高兴。 我的htpasswd文件是使用推荐的方法创build的: docker run –entrypoint htpasswd registry:2 -Bbn heyitsme mysupersecurepassword > htpasswd 我build立我的形象: docker build -t heyitsme/registry . 之后我运行一个非常基本的W / O TLS和authentication版本: docker run –restart=always -p 5000:5000 heyitsme/registry 我实际上可以拉,标记和重新推送一个图像: […]

在OSX中安装Docker卷时,权限被拒绝

我在这个智慧的结尾,所以希望你们可以帮助我。 在Docker-machine的OSX 10.11.2中,我有一个docker-compose文件,该文件应该build立一个本地的Dockerfile并附加一个MySQL容器。 MySQL容器应该在我存储数据库数据的地方安装一个本地文件夹,所以如果容器或虚拟机closures,我可以重新启动它,而不会丢失数据。 问题是,当我运行它时,会抛出一个权限错误: db_1 | 2015-12-23 19:17:59 7facaa89b740 InnoDB: Operating system error number 13 in a file operation. db_1 | InnoDB: The error means mysqld does not have the access rights to db_1 | InnoDB: the directory. 我已经尝试过所有我能想到的方法来实现这个目标。 我正在阅读,它可能与如何docker机处理OSX的权限有关,但docker机的文件说,它挂载/Users文件夹,所以这不应该是一个问题。 这里是docker-compose.yml : web: build: . ports: – "3000:3000" links: – db db: image: mysql:5.6 […]

Docker容器中容量错误

我通过本地docker-machine虚拟机在OSX 10.11中运行Docker 1.8.1。 我有以下docker-compose.yml: web: build: docker/web ports: – 80:80 – 8080:8080 volumes: – $PWD/cms:/srv/cms 我的Dockerfile看起来像这样: FROM alpine # install nginx and php RUN apk add –update \ nginx \ php \ php-fpm \ php-pdo \ php-json \ php-openssl \ php-mysql \ php-pdo_mysql \ php-mcrypt \ php-ctype \ php-zlib \ supervisor \ wget \ curl […]

扩展dockerpostgres图像来创build额外的数据库

我已经看到了这个主题: https : //stackoverflow.com/a/26599273/2323245 但是我有以下问题: postgres_1 | FATAL: role "docker" does not exist app_1 | Error: Could not establish a connection with the database 这是我的docker-compose.yml文件 version: "2" services: app: build: context: . dockerfile: Dockerfiles/app.dockerfile links: – postgres depends_on: – postgres ports: – "8080:8080" environment: PORT: 8080 networks: – neo_dev restart: always postgres: build: context: . […]

使用Docker for Mac创buildswarm群集

我一直在试图按照这个教程https://docs.docker.com/engine/swarm/swarm-tutorial/ 而不是在一些真正的Linux主机或本地虚拟机上运行它,我想连接一对运行Docker for Mac的MacBook。 在教程之后,我在两台机器上安装了Docker for Mac。 在第一台机器的docker群创build工作,并创build一个哈希和ID。 进行到第二台机器我执行连接命令从一个粘贴到另一个。 第二台机器无法连接。 这是预期的,因为在输出中显示的IP地址显然是虚拟机中的IP地址,而不是我机器上的地址。 我试图通过指定本地networking适配器的地址来转移教程,但它说不能绑定到该地址。 我知道所有的端口是开放的,机器可以互相连接。 所以在我看来,我从根本上误解了本教程的目标,或者如何设置两个Mac,以便他们可以沟通。 通过search解决scheme,似乎有几种可能性,我需要做什么: 运行一个分布式kv存储来帮助swarmnetworking协调(但是这不是新编排的要点吗?)在每台机器上build立一个从networking适配器到高山linux docker守护进程的端口隧道放弃并testing我的集群本地 更新:经过一些更多的研究,似乎我应该使用本指南创build覆盖networking。 但是这个指南使用docker机器。 据我了解,我应该/不能使用docker机与Docker for Mac,或者是不正确的? https://docs.docker.com/engine/userguide/networking/get-started-overlay/

无法通过API返回Docker存储库映像列表

在https://docs.docker.com/v1.7/reference/api/docker-io_api/#list-library-repository-images上的文档后,我有一些问题,如果图像返回到几个存储库列表。 不知道是否有缺失,或有任何问题? 这个例子工作,返回一个校验和和ID对象的数组: https : //index.docker.io/v1/repositories/library/ubuntu/images 但https://index.docker.io/v1/repositories/codacy/codacy-pylint/images返回一个空数组 也许回购需要一些文件的信息?

Docker群体链接

我想创build一个运行弹性search实例,MongoDB实例和Grails应用程序的Docker Swarm集群,每个集群都在一台独立的机器上运行。 我使用Docker Machine来设置我的Docker Swarm集群 蜂拥而上,01: MongoDB的 mongodb_ambassador 蜂拥而上-02: elasticsearch elasticsearch_ambassador 蜂拥而上-03: mongodb_ambassador elasticsearch_ambassador Grails的 我的设置的最后一步,运行实际的grails应用程序,使用以下命令: docker run -p 8080:8080 -d –name grails-master –volumes-from maven –link mongo:mongo-master –link es:es-master my-grails-image 失败,错误: 守护进程的错误响应:无法find满足所有依赖关系的节点:–volumes-from = maven –link = mongo:mongo-master –link = es:es-master 大使容器和Maven数据容器都在同一个节点上运行。 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 74677dad09a7 svendowideit/ambassador "/bin/sh -c 'env | […]

使用docker机器来设置Swarm的麻烦

我在部署本地基于virtualbox的群集时遇到了问题 – 我按照正式的docker文档中有关使用docker-machine工具设置master / worker节点的说明。 我已经在dockerhub上创build了令牌,并且使用了–swarm(和–war-master)和–warm-discovery token:// XXXX …这么好,两台机器运行,看起来好像是Swarm master,工人: spaceback@brutus:~$ docker-machine ls NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS swarm-master * (swarm) virtualbox Running tcp://192.168.99.100:2376 swarm-master (master) v1.12.0 swarm-node1 – virtualbox Running tcp://192.168.99.101:2376 swarm-master v1.12.0 spaceback@brutus:~$ docker run –rm swarm list token://[….] 192.168.99.101:2376 192.168.99.100:2376 使用“eval $(docker-machine env – swarm-master)”来设置正确的环境值后,我可以使用“docker info”获得状态,指出我有两个节点正在运行…但是任何尝试运行任何其他docker群swarm命令(docker节点,docker服务…)我得到“错误响应守护进程:404页未find”。 我究竟做错了什么?

如何检测是否安装了Docker for Mac?

我有一些makefile文件,其中大部分内容应该在没有configuration的情况下运行。 这些makefile过去曾经使用docker-machine。 有没有在bash中检测,如果用户是使用docker而不是docker机的mac?