Tag: 坞员

使用Docker Machine和Swarm并通过Docker守护进程使用Swarm有什么区别?

在一个群体(一个经理和多个节点)中拥有多个docker机器并且在一个群体中拥有多个docker服务的副本之间究竟有什么区别?

docker-compose有没有办法保存并打开docker镜像?

使用本机docker客户端守护进程,您可以将映像保存到文件,然后加载它们。 作为一个例子,从文档 : $ docker save busybox > busybox.tar $ ls -sh busybox.tar 2.7M busybox.tar $ docker save –output busybox.tar busybox $ ls -sh busybox.tar 2.7M busybox.tar $ docker save -o fedora-all.tar fedora $ docker save -o fedora-latest.tar fedora:latest 我想用docker-compose做同样的function。 但是, 它似乎不支持在文档中保存/加载 。 我想这样做的原因是我运行docker-compose在通过docker sock进行通信的环境中,但是没有安装docker。 我不能在这个环境中安装docker客户端(但是docker-compose已经安装)。 Docker没有安装,并且不需要安装docker-compose来工作。 所有docker-compose要求是连接到/var/run/docker.sock,它使用docker-py来讨论这个问题。 我想我可以写一个简单的脚本使用docker-py来做到这一点,但我希望通过docker-compose来做到这一点。 docker-compose有没有方法加载保存在docker save的图像文件或执行等效的命令?

运行多个docker-compose(每台机器一台)

我正在testing很多微服务。 我把它们中的一些放在一个docker-compose文件中,例如: agent: image: php:fpm volumes: – ./GIT:/reposcm:ro expose: – 9000 links: – elastic elastic: image: elasticsearch expose: – 9200 – 9300 然后我通过$docker-compose up启动第一个 在另一个目录中,我将启动$docker-compose up另一个“微服务”。 但是我得到: ERROR: Couldn't connect to Docker daemon – you might need to run `docker-machine start default`. 如何为docker-compose.yml指定docker机器? $docker-machine ls NAME ACTIVE DRIVER STATE URL SWARM default – virtualbox Running […]

docker swarm init无法selectIP地址错误

试验Docker Swarm,我这样做了: docker-machine create -d virtualbox node-1 docker-machine create -d virtualbox node-2 docker-machine create -d virtualbox node-3 eval $(docker-machine env node-1) docker swarm init \ –secret my-secret \ –auto-accept worker \ –listen-addr $(docker-machine ip node-1):2377 最后一条命令(docker swarm init)返回这个在Google上找不到的错误: Error response from daemon: could not choose an IP address to advertise since this system has multiple […]

用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/