Questions tagged «docker-compose»

Compose是用于使用Docker定义和运行复杂应用程序的工具。使用Compose,您可以在一个文件中定义一个多容器应用程序,然后在一个命令中旋转应用程序,该命令完成了运行该应用程序所需的一切。


7
使用容器名称从主机访问Docker容器
我正在开发服务,并在那里使用docker compose来旋转诸如postgres,redis,elasticsearch之类的服务。我有一个基于RubyOnRails的Web应用程序,并从所有这些服务中进行读写操作。 这是我的 docker-compose.yml version: '2' services: redis: image: redis:2.8 networks: - frontapp elasticsearch: image: elasticsearch:2.2 networks: - frontapp postgres: image: postgres:9.5 environment: POSTGRES_USER: elephant POSTGRES_PASSWORD: smarty_pants POSTGRES_DB: elephant volumes: - /var/lib/postgresql/data networks: - frontapp networks: frontapp: driver: bridge 我可以在此网络中ping容器 $ docker-compose run redis /bin/bash root@777501e06c03:/data# ping postgres PING postgres …

3
docker-compose为同一图像创建多个实例
我需要为同一张图片启动多个容器。如果我按如下所示创建我的撰写文件,则可以正常工作。 version: '2' services: app01: image: app app02: image: app app03: image: app app04: image: app app05: image: app 我有什么简单的方法可以提及撰写实例的数量,而不是多次复制和粘贴?

8
如何使用docker-compose播种mongo数据库?
我正在尝试分发在几个链接的容器中运行的一组连接的应用程序,这些容器包括一个mongo数据库,该数据库需要: 分发包含一些种子数据; 允许用户添加其他数据。 理想情况下,数据还将保存在链接的数据卷容器中。 我可以mongo使用mongo不装载任何卷的基本实例(dockerhub映像:psychemedia/mongo_nomount-本质上是不带该VOLUME /data/db语句的基本mongo Dockerfile )和Dockerfile配置的方式将数据放入容器中: ADD . /files WORKDIR /files RUN mkdir -p /data/db && mongod --fork --logpath=/tmp/mongodb.log && sleep 20 && \ mongoimport --db testdb --collection testcoll --type csv --headerline --file ./testdata.csv #&& mongod --shutdown 其中与Dockerfile./testdata.csv位于同一目录(./mongo-with-data)中。 我的docker-compose配置文件包括以下内容: mongo: #image: mongo build: ./mongo-with-data ports: - "27017:27017" #Ideally …

1
验证docker-compose yml文件
有没有简单的方法来验证docker-compose文件的语法等(docker-compose.yml aka fig.yml)而不必正常运行docker? 我正在尝试向构建/测试管道中添加快速检查,以验证我的撰写文件。


5
如何使用docker-compose命令覆盖COMPOSE_HTTP_TIMEOUT的默认值
我有docker-compose,它会获取一些图像并构建一个图像。运行docker-compose up时,出现以下错误 错误: HTTP请求花了太长时间才能完成。使用--verbose重试以获得调试信息。如果由于网络状况较慢而经常遇到此问题,请考虑将COMPOSE_HTTP_TIMEOUT设置为更高的值(当前值:60)。 问题:如何通过COMPOSE_HTTP_TIMEOUTwithdocker-compose命令?

5
在docker-compose中使用--add-host或extra_hosts
我docker-compose用来运行一个测试环境,它由大约5个不同的容器组成。容器间链接和共享卷(从)开始工作非常好。我还向主机公开了一些端口,效果很好。 我所缺少的是在不对IP地址进行硬编码的情况下将一些真实服务器链接到此环境的方法。使用docker run,您可以用来--add-host在/etc/hosts文件中添加另一行。有什么办法可以与docker-compose做类似的事情吗?

5
如何使用docker-compose v3.1管理机密值?
docker-compose.yml规范的3.1版引入了对secrets的支持。 我尝试了这个: version: '3.1' services: a: image: tutum/hello-world secret: password: the_password b: image: tutum/hello-world $ docker-compose up 返回: Unsupported config option for services.secret: 'password' 我们如何在实践中使用机密功能?


8
从本地主机连接到Docker MySQL容器?
我正在运行一个docker mysql映像,以下是docker-compose.yml文件的外观: db: image: mysql environment: MYSQL_ROOT_PASSWORD: "" MYSQL_ALLOW_EMPTY_PASSWORD: yes ports: - "3306:3306" 这很好。 我的问题是:如何从主机(我的Macbook)上的命令行mysql客户端连接到在该容器上运行的MySQL实例? 澄清: 我有一台装有Docker的Macbook 我有一个带有mysql的docker容器 我想从Macbook的终端连接到在上述容器上运行的mysql实例 我不想使用docker命令来实现这一点。相反,我想mysql直接从终端使用客户端(而不通过Docker容器进行隧道传输)。 我没有在本地运行的MySQL,因此应打开端口3306并准备使用它。 我用来启动容器的命令是: docker-compose run

6
在docker-compose中使用主机ip
我想创建一个可以在不同服务器上运行的docker-compose文件。 为此,我必须能够在docker-compose.yml的多个位置指定服务器的host-ip或主机名(所有容器都在其中运行)。 例如一个领事容器,我想定义其他领事容器如何找到服务器。 consul: image: progrium/consul command: -server -advertise 192.168.1.125 -bootstrap 我显然不想对192.168.1.125进行硬编码。 我可以使用 env_file:指定主机名或IP,并通过它的每一个服务器上,所以我必须在一个地方的信息和使用,在泊坞窗,compose.yml。但这只能用于指定环境变量,而不能用于advertise参数。 有更好的解决方案吗?

2
通过docker-compose在Pycharm上运行Python控制台
我在通过docker-compose使用远程python解释器运行pycharm时遇到一些问题。当我按下运行按钮时,除Python控制台外,其他所有功能都运行良好,仅显示以下消息: “错误:无法从docker-compose输出中找到服务“ web”的容器名称” 我真的不明白,如果我docker-compose.yml提供web服务,为什么它会让我继续显示。 有什么帮助吗? 编辑: docker-compose.yml version: '2' volumes: dados: driver: local media: driver: local static: driver: local services: beat: build: Docker/beat depends_on: - web - worker restart: always volumes: - ./src:/app/src db: build: Docker/postgres ports: - 5433:5432 restart: always volumes: - dados:/var/lib/postgresql/data jupyter: build: Docker/jupyter command: jupyter notebook …

1
具有确定性端口绑定的Docker扩展
我想缩放wildfly暴露了多个端口并具有确定性结果的容器。 docker-compose.yml version: '3' services: wildfly-server: build: context: . dockerfile: Dockerfile args: admin_user: admin admin_password: admin deploy: resources: limits: memory: 1.5G cpus: "1.5" restart: always ports: - "8000-8099:8080" - "8100-8199:9990" - "8200-8299:8787" expose: - "8080" - "9990" - "8787" Docker文件 FROM jboss/wildfly:16.0.0.Final # DOCKER ENV VARIABLES ENV WILDFLY_HOME /opt/jboss/wildfly ENV …

4
如何使用Traefik 2.0和Docker Compose标签将http重定向到https?
请注意,这是Traefik V2问题。我在V1上有一个解决方案,但V2是完全重新设计的。 以上内容应该将http://whoami.mysite.com重定向到http s://whoami.mysite.com。 http 的运行良好。 http不会重定向到https并引发错误404。 没有其他文件。目前,这一切都在Docker-compose.yml中,因为这是准备进一步部署的测试。 version: "3.3" services: traefik: image: "traefik:v2.0" container_name: "traefik" command: - "--log.level=DEBUG" - "--api.insecure=true" - "--providers.docker=true" - "--providers.docker.exposedbydefault=false" - "--entrypoints.web.address=:80" - "--entrypoints.web-secure.address=:443" - "--certificatesresolvers.myhttpchallenge.acme.httpchallenge=true" - "--certificatesresolvers.myhttpchallenge.acme.httpchallenge.entrypoint=web-secure" #- "--certificatesresolvers.myhttpchallenge.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory" - "--certificatesresolvers.myhttpchallenge.acme.email=me@mail.com" - "--certificatesresolvers.myhttpchallenge.acme.storage=/letsencrypt/acme.json" labels: - "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https" ports: - "80:80" - "443:443" - "8080:8080" volumes: …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.