Tag:

docker工人运行没有主机卷的本地脚本

目标是在数据库容器运行后,使用curl从下载中将数据添加到多容器Web应用程序的数据库服务器容器中。 我可以通过docker-compose.yml或独立于Web应用程序的docker运行来实现,只要我使用主机卷即可。 如何在不使用主机卷或Web应用程序特定的Docker文件的情况下执行此操作? Docker撰写与主机卷的例子: dbinit: build: ./webtools_config/initdb command: bash -c "/tmp/webtools_config/dbinit.sh" volumes: – ./webtools_config:/tmp/webtools_config links: – db1 – db2 docker运行的例子,我想将脚本文件本地传递给docker 客户端 ,如./dbinit.sh: docker run -a stdin -a stdout -i -t \ –link dir_db1_1:db1 \ –link dir_db2_1:db2 \ initdb /bin/sh -c "./dbinit.sh"

Docker – 无法在java之间的卷之间移动文件

我有两个docker集装箱:生产者和消费者。 消费者容器有两卷: VOLUME ["/opt/queue/in", "/opt/queue/out"] 泊坞窗,compose.yml consumer: image: consumer producer: image: producer volumes_from: – consumer 生产者将文件放在/opt/queue/in目录中,使用者从该目录读取文件并将其移动到/opt/queue/out 。 问题是,消费者是用Java编写的,下面的Java代码返回-1 (操作失败)。 new File('/opt/queue/in/in_file').renameTo(new File('/opt/queue/in/in_file')); 当我尝试从命令行移动文件没有错误。 文件被正确移动。 为什么发生这种情况? 我如何诊断问题是什么?

使用Docker Compose将主机的SSH密钥注入到Docker Machine中

我在Mac OS X上使用Docker机器上的Docker(使用默认的boot2docker机器),并使用docker-compose来设置我的开发环境。 假设其中一个容器被称为“ stack ”。 现在我想要做的就是打电话: docker-composer run stack ssh user@stackoverflow.com 我的公钥(已经被添加到stackoverflow.com ,并将用于validation我)位于主机上。 我希望这个密钥对Docker机器容器可用,这样我就可以使用该容器内的密钥对自己进行身份validation。 最好不要将我的密钥物理复制到Docker Machine。 有没有办法做到这一点? 此外,如果我的密码是密码保护,有没有办法解锁一次,所以每次注射后,我不需要手动input密码?

如何从docker-compose链接到Amazon RDS

我的docker-compose.yml看起来像这样: django: build: . user: django links: # LINK TO AMAZON RDS? command: /gunicorn.sh env_file: config/settings/.env nginx: build: ./compose/nginx links: – django ports: – "0.0.0.0:80:80" 如何将django容器链接到具有如下url的Amazon RDS: example.blahblahblah.eu-west-1.rds.amazonaws.com:5432 : example.blahblahblah.eu-west-1.rds.amazonaws.com:5432

减less自定义Docker镜像大小的最佳方法

我已经build立了一个基于官方PHP FPM图像 php:7.0.14-fpm-alpine的定制Docker镜像 我想保持图像的大小,所以我select了正式的alpine PHP-FPM版本,因为它的重量只有27 MB 。 我通过Dockerfile只安装了几个额外的软件包,图像的大小增加到277.5 MB 。 这是我的Dockerfile: FROM php:7.0.14-fpm-alpine COPY ./config/www-pool.conf /usr/local/etc/php-fpm.d/www.conf COPY ./scripts/download-composer.sh /root/download-composer.sh WORKDIR /root RUN chmod +x download-composer.sh \ && ./download-composer.sh \ && mv composer.phar /usr/local/bin/composer RUN ["mkdir", "/var/log/php-fpm"] RUN apk –update add \ autoconf g++ make \ openssl-dev \ libxml2-dev RUN pecl install \ xdebug \ mongodb […]

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-Compose创build没有容器的networking

我在过去几天一直在玩Docker-Compose,看看它是否会简化我的Docker容器和networking构build过程。 我对此感到非常满意,但是当我想创build一些没有被“服务”使用的“networking”时,却遇到了一个问题。 我想要这种行为的原因是有一个Docker-Compose文件来创build我的“私人”networking和“公共”networking的本地结构。 还有一个独立的Docker-Compose,用于我的每一个利用已经创build的“外部”networking的项目。 我注意到我只能指定一个虚拟容器来初始化networking的创build,但似乎没有必要。 例如。 version: '2' services: # Dummy Service dummy: image: busybox container_name: dummy hostname: dummy networks: private: networks: # Private Network for all Services (across Projects) private: driver: bridge ipam: driver: default config: – subnet: 172.18.0.0/24 gateway: 172.18.0.1 是否有一个我忽略的设置/标记,还是目前没有办法使用Docker-Compose创build没有容器的networking。 另外,我刚刚接触到这个不正确? 基本上我想有一个生活的networking,无论容器join/离开它。

在Docker中使用Spring保存文件后“const_get':未初始化的常量(NameError)'

我在Spring和Guard中使用Docker中的rails。 请参阅Guardfile: guard 'rspec', cmd: "#{env_vars} spring rspec -color -f doc", :all_on_start => false, :all_after_pass => false do watch(%r{^spec/.+_spec\.rb$}) 奇怪的问题:当上面的命令中有spring标签时,我在运行规范时遇到了一个错误,但只是在以某种方式保存了容器中的一个文件之后。 这是错误的: /usr/local/bundle/gems/activesupport-5.0.1/lib/active_support/inflector/methods.rb:268:in `const_get': uninitialized constant User (NameError) from /usr/local/bundle/gems/activesupport-5.0.1/lib/active_support/inflector/methods.rb:268:in `block in constantize' from /usr/local/bundle/gems/activesupport-5.0.1/lib/active_support/inflector/methods.rb:266:in `each' from /usr/local/bundle/gems/activesupport-5.0.1/lib/active_support/inflector/methods.rb:266:in `inject' from /usr/local/bundle/gems/activesupport-5.0.1/lib/active_support/inflector/methods.rb:266:in `constantize' from /usr/local/bundle/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:583:in `get' from /usr/local/bundle/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:614:in `constantize' from /usr/local/bundle/gems/devise-4.2.0/lib/devise.rb:301:in `get' from /usr/local/bundle/gems/devise-4.2.0/lib/devise/mapping.rb:81:in `to' from /usr/local/bundle/gems/devise-4.2.0/lib/devise/mapping.rb:76:in […]

Docker,Django和Selenium – Selenium无法连接

我有Dockerconfiguration使用docker-compose.yml运行Postgres和Django,它工作正常。 我遇到的麻烦是Selenium无法连接到Django liveserver。 现在对我来说(至less对我来说)django必须访问selenium来控制浏览器,而selenium必须访问django来访问服务器。 我已经尝试使用docker-compose.yml的docker-compose.yml从这里使用docker'ambassador'模式: https : //github.com/docker/compose/issues/666 postgis: dockerfile: ./docker/postgis/Dockerfile build: . container_name: postgis django-ambassador: container_name: django-ambassador image: cpuguy83/docker-grand-ambassador volumes: – "/var/run/docker.sock:/var/run/docker.sock" command: "-name django -name selenium" django: dockerfile: ./docker/Dockerfile-dev build: . command: python /app/project/manage.py test my-app container_name: django volumes: – .:/app ports: – "8000:8000" – "8081:8081" links: – postgis – "django-ambassador:selenium" environment: – […]

从本地连接到Docker MySQL容器?

我有一个docker运行的mysql图像,以下是docker-compose.yml文件的样子: db: image: mysql environment: MYSQL_ROOT_PASSWORD: "" MYSQL_ALLOW_EMPTY_PASSWORD: yes ports: – "3306:3306" 这工作正常。 我的问题是:我怎么能连接到MySQL的实例运行在该容器从命令行mysql客户端在我的主机(我的macbook)? 澄清: 我有一个安装了Docker的MacBook 我有一个docker容器与MySQL 我想连接到上述容器从我的MacBookterminal上运行的MySQL实例 我不想使用docker命令来实现这一点。 相反,我想直接从terminal使用mysql客户端(无需通过docker容器进行隧道传输)。 我没有在本地运行MySQL,所以端口3306应该是开放的并且可以使用。 我用来启动容器的命令是: docker-compose run