Tag: docker compose

将docker-compose.yml转换成DockerAPI / services / create接受的json?

我想通过用于Go-lang的Docker API将服务部署到已经运行的Docker Stack中。 由于dockerAPI只接受json的文档描述,所以我search了一个可以将compose.yaml转换为dockerAPI接受的json的工具。 或者,如果go-lang DockerAPI中有任何方法可以直接使用yaml数据创build服务,就像我们在compose.yml中提供的那样。 示例Yaml: myapp: image: amithp/pyapp:latest deploy: replicas: 3 restart_policy: condition: on-failure networks: – frontend-network environment: – MYENV=myapp labels: myproject: "xyz" label1: "somevar" 对于DockerAPI和Go-lang,我都是相当新的,任何build议或方向都会大有帮助。

Docker-将phpmyadmin和mysql合并在一起进行本地开发

version: "3.1" services: redis: image: redis:alpine container_name: larablog-redis 代码工作正常,直到我添加以下服务 db: image: mysql:8.0 container_name: larablog-mysql working_dir: /application volumes: – ./src:/application environment: – MYSQL_ROOT_PASSWORD=rootpass – MYSQL_DATABASE=larablog – MYSQL_USER=larauser – MYSQL_PASSWORD=larauserpass ports: – "8890:3306" phpmyadmin: image: phpmyadmin/phpmyadmin environment: PMA_ARBITRARY: 1 MYSQL_USER: larauser MYSQL_PASSWORD: larauserpass MYSQL_ROOT_PASSWORD: rootpass ports: – "80:80" links: # for mysql container – "db:db" volumes: db: […]

能够比docker构buildmem_limit更多的malloc

我试图限制我的容器,以便它不占用主机上的所有RAM。 从Docker文档我明白, –memory限制了内存和–memory-swap限制(内存+交换)。 从mem_limit -compose文档看来,它们的条款是mem_limit和memswap_limit ,所以我构build了以下memswap_limit -compose文件: > cat docker-compose.yml version: "2" services: stress: image: progrium/stress command: '-m 1 –vm-bytes 15G –vm-hang 0 –timeout 10s' mem_limit: 1g memswap_limit: 2g progrium /压力图像只是运行的stress ,在这种情况下产生一个单线程请求15GB的RAM并保持10秒。 我预计这会崩溃,自15> 2。 (如果我要求比主机更多的内存,它会崩溃。) 内核启用了cgroups, docker stats显示这个限制正在被识别: > docker stats CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS […]

如何debugging与docker运行的Elixir应用程序?

用这种方法可以debugging: require IEx; defmodule Example do def double_sum(x, y) do IEx.pry hard_work(x, y) end defp hard_work(x, y) do 2 * (x + y) end end 但是,如果在Docker中使用其他microservices (如db,cache,worker等)通过docker-compose运行程序,它甚至不会停止设置breakpoint 。

在使用类似Heroku的云中扩展Web容器时处理embedded式tomcat端口号的问题

说我有两个Web容器缩放如下: docker-compose scale web=2 Web容器执行如下(从Dockerfile): ENTRYPOINT [ "java", "-jar", "/app/my-jar-server-1.0.jar" ] 确保两个embedded式tomcats听不同端口的最佳策略是什么(例如,如果我想构build一个类似Heroku的基础结构: 请参阅领class )? 换句话说,两个容器都要听同一个端口,从而引起冲突。 理想情况下,我需要将请求循环到两个tomcat实例。 我正在寻找工具和想法… 编辑1 : 这是我试过的: 从docker-compose.yml: loadbalancer: image: haproxy links: – web ports: – "8080:8080" web: build: ./web 来自./web/Dockerfile: FROM java:8 ADD ./bignibou-server-1.0.jar /app/bignibou-server-1.0.jar ADD ./spring-cloud.properties /app/spring-cloud.properties ENV SPRING_CLOUD_PROPERTIESFILE=/app/spring-cloud.properties ENV SPRING_PROFILES_ACTIVE=cloud ENV SPRING_CLOUD_APP_NAME=bignibou ENV CLEARDB_DATABASE_URL=mysql://root:root@localhost:3306/bignibou_dev ENV REDISCLOUD_URL=redis://dummy:dummy@localhost:6379 ENV DYNO=dummy EXPOSE […]

Docker撰写:暴露环境variables到链接的服务

我正在玩Docker Compose,使一个容器运行一个带有Oracle后端的Rails应用程序。 Dockerfile和docker-compose.yml 这很好,直到我的Docker容器试图安装ruby-oci8 gem,它寻找一些or​​acle特定的环境variables。 这些variables在Oracle容器的Dockerfile中公开 : RUN 'export ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe' 问题是,如何将oracle容器上的这个环境variables暴露给Web容器?

docker中的Redis启动/重新启动多次?

我想通过使用docker-compose在docker容器中运行redis: 泊坞窗,compose.yml: redis: image: redis:3.0.4 命令: $ docker-compose up 输出: Starting test_redis_1… Attaching to test_redis_1 redis_1 | 1:C 06 Oct 15:16:13.265 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf redis_1 | _._ redis_1 | _.-“__ ''-._ redis_1 | _.-“ `. `_. ''-._ Redis […]

在哪里保持与Docker / Docker-Compose一起使用的依赖关系(大文件或目录结构)?

作为开发环境的Docker设置的一部分,我使用Docker-Composepipe理以下内容: 基于mysql:5.7 MySQL实例(在docker-compose.yaml文件中称为database ) 基于tomcat:7.0两个Tomcat实例(称为manager和runtime )。 这两个依赖于数据库存在,这通过docker-compose提供的link工作正常。 作为容器构build的一部分,我将几个SQL脚本映射到数据库容器中,这些脚本在创build时加载到数据库中。 对于Tomcat实例,我需要在每个容器中部署一个单独的WAR文件: manager.war到manager和runtime.war到runtime 。 这些WAR文件的大小都是120 MB左右。 为了简单起见,我已经将WAR文件添加到用于pipe理docker-compose项目的Git项目中。 除了docker-compose.yaml文件和WAR文件之外,项目还包含SQL数据和一些我映射到相应容器的shell脚本。 目前我最大的问题是在哪里保留WAR文件,因为它们大大增加了Git仓库的大小。 由于我期望随着时间的推移对WAR文件进行更新(它们是在本项目之外创build/版本化的),所以我将不得不随时更新这些文件和更新的副本,进一步增加了回购的大小,这将使其变得困难让人们只要克隆回购。 如何解决这个问题? 我知道在Git仓库中保存二进制文件通常是一种不好的做法,但是我也希望保持文件靠近项目,所以使用这个文件的人不必开始search/下载文件,然后才能够用这个。 在Docker或Docker-Compose中是否有一个function可以帮助我pipe理这些“依赖关系”?

docker停止从退出火花容器

我知道docker只听pid 1,如果pid退出(或变成守护进程),它认为程序退出,容器closures。 当apache-spark启动时,./ ./start-master.sh脚本如何保持容器运行? 我不认为: while true; do sleep 1000; while true; do sleep 1000; 做是一个适当的解决scheme。 例如,我用command: sbin/start-master.sh启动主。 但是它一直在closures。 如何使用docker-compose启动时保持运行?

如何从Docker容器获取数据到主机上的共享文件夹?

我能够挂载~/share在我的MAC /主机和opt/abc容器内的音量。 然而,这样做都是空的。 尽pipe容器中有整个应用程序。 但它的工作,我创build的文件,它出现在这两个地方。 我能做些什么来获取容器中的所有文件,并将其放入主机/ mac侧的文件夹中。 再次。 它从一开始就连接并同步。 但是容器内已经存在的东西并不是没有显示出来。