Questions tagged «docker-compose»

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

13
如何在Docker Compose中使用环境变量
我希望能够在docker-compose.yml中使用env变量,并在docker-compose时传入值。这就是例子。我今天使用基本的docker run命令执行此操作,该命令包装在我自己的脚本中。没有任何这样的bash包装器,有没有办法通过compose实现它? proxy: hostname: $hostname volumes: - /mnt/data/logs/$hostname:/logs - /mnt/data/$hostname:/data


4
如何使用卷将数据持久化在dockerized postgres数据库中
我的docker compose文件包含三个容器:web,nginx和postgres。Postgres看起来像这样: postgres: container_name: postgres restart: always image: postgres:latest volumes: - ./database:/var/lib/postgresql ports: - "5432:5432 我的目标是安装一个./database与postgres容器内称为的本地文件夹相对应的卷/var/lib/postgres。当我启动这些容器并将数据插入postgres时,我验证了/var/lib/postgres/data/base/所添加数据的全部内容(在postgres容器中),但是在我的本地系统中,./database只data在其中获得了一个文件夹,即已./database/data创建,但它为空。为什么? 笔记: 这表明我上面的文件应该工作。 这个人正在使用docker服务,这很有趣 更新1 根据Nick的建议,我做了一个docker inspect发现: "Mounts": [ { "Source": "/Users/alex/Documents/MyApp/database", "Destination": "/var/lib/postgresql", "Mode": "rw", "RW": true, "Propagation": "rprivate" }, { "Name": "e5bf22471215db058127109053e72e0a423d97b05a2afb4824b411322efd2c35", "Source": "/var/lib/docker/volumes/e5bf22471215db058127109053e72e0a423d97b05a2afb4824b411322efd2c35/_data", "Destination": "/var/lib/postgresql/data", "Driver": "local", "Mode": "", "RW": true, "Propagation": …

5
如何定义使用docker-compose构建的映像的名称
我正在使用docker-compose创建我的开发环境。我想构建一个特定的图像,但是我不知道如何为该图像设置名称。 wildfly: build: /path/to/dir/Dockerfile container_name: wildfly_server ports: - 9990:9990 - 80:8080 environment: - MYSQL_HOST=mysql_server - MONGO_HOST=mongo_server - ELASTIC_HOST=elasticsearch_server volumes: - /Volumes/CaseSensitive/development/wildfly/deployments/:/opt/jboss/wildfly/standalone/deployments/ links: - mysql:mysql_server - mongo:mongo_server - elasticsearch:elasticsearch_server 当我执行docker-compose所有操作时,一切正常,但是我得到了新图像的随机名称。是否可以为构建映像设置名称?

6
如何使docker-compose始终从新映像重新创建容器?
我的Docker映像构建在Jenkins CI服务器上,并被推送到我们的私有Docker Registry。我的目标是使用docker-compose配置环境,该环境始终会启动映像的原始构建状态。 我目前在不同的机器上使用docker-compose 1.3.2以及1.4.0,但是我们之前也使用了旧版本。 我总是使用docker-compose pull && docker-compose up -d命令从注册表中获取新图像并启动它们。我相信我的首选行为在某个时间点之前都可以按预期工作,但是从那时起,它docker-compose up开始重新运行以前停止的容器,而不是每次都启动原始构建的映像。 有没有办法摆脱这种行为?这样可以成为在docker-compose.yml配置文件中关联的一种方式,以不依赖于每次调用时“不要忘记”命令行上的某些内容吗? ps。除了找到实现目标的方法外,我还想进一步了解这种行为的背景。我认为Docker的基本思想是构建一个不变的基础架构。docker-compose的当前行为似乎与这种方法完全冲突..还是我在这里错过了几点?

13
Docker-compose:npm安装成功后,卷中不存在node_modules
我有一个具有以下服务的应用程序: web/ -在端口5000上保存并运行python 3 flask网络服务器。使用sqlite3。 worker/-有一个index.js文件,它是队列的工作程序。Web服务器使用json API通过端口与此队列进行交互9730。工作人员使用Redis进行存储。工作人员还将数据本地存储在文件夹中worker/images/ 现在这个问题只涉及到worker。 worker/Dockerfile FROM node:0.12 WORKDIR /worker COPY package.json /worker/ RUN npm install COPY . /worker/ docker-compose.yml redis: image: redis worker: build: ./worker command: npm start ports: - "9730:9730" volumes: - worker/:/worker/ links: - redis 当我运行时docker-compose build,一切都按预期工作,并且所有npm模块均按预期安装/worker/node_modules。 npm WARN package.json unfold@1.0.0 No README data …

22
无法从docker-compose连接到docker
我在Mac OS 10.8.5上安装了docker-machine 0.1.0和docker-compose 1.1.0。Docker-machine正常运行,并且能够通过docker-machine ssh连接。 $ docker-machine ls NAME ACTIVE DRIVER STATE URL SWARM dev * virtualbox Running tcp://192.168.99.100:2376 但是无法从docker-compose连接。 $ docker-compose up 无法通过http + unix://var/run/docker.sock连接到Docker守护程序-它正在运行吗? 如果它位于非标准位置,请使用DOCKER_HOST环境变量指定URL。 我的Dockerfile和docker-compose.yml在这里。 Docker文件 FROM centos:centos7 DOCKER_HOST tcp://192.168.99.100:2376 docker-compose.yml web: build: . 为什么无法连接?有任何想法吗?

6
docker-compose up仅适用于某些容器
我有一个docker-compose.yml包含几个容器的容器。其中三个用于我的应用程序(客户端,服务器和数据库),其余用于各种开发工具(例如psql,npm,manage.py等)。当我完成docker-compose up所有这些操作时,但是我只希望三个主要功能开始。由于已经指定了链接,因此我docker-compose up client只能从这三个容器开始,但是输出仅来自那个容器。因此,有没有一种方法可以执行以下任一操作: 告诉docker-compose哪个容器应该由以下对象启动 docker-compose up 从所有链接的容器获取输出 docker-compose up client

5
如何在docker-compose.yml中将参数传递给入口点
我使用此图像:dperson / samba 该图像定义了它自己的入口点,我不想覆盖它。 我需要将参数传递给入口点,仅适用于docker: docker run ... dperson/samba arg1 arg2 arg3 但是如何使用docker_compose.yml呢? 现在,我用作解决方法: command: samba.sh arg1 arg2 arg3 但是当我强制重新定义入口点时,它并不令人满意。

4
Docker-组合持久数据MySQL
如果运行$ docker-compose down以下命令,我似乎无法使MySQL数据持久化.yml version: '2' services: # other services data: container_name: flask_data image: mysql:latest volumes: - /var/lib/mysql command: "true" mysql: container_name: flask_mysql restart: always image: mysql:latest environment: MYSQL_ROOT_PASSWORD: 'test_pass' # TODO: Change this MYSQL_USER: 'test' MYSQL_PASS: 'pass' volumes_from: - data ports: - "3306:3306" 我的理解是,在我的data容器中,使用volumes: - /var/lib/mysql将其映射到我的本地计算机目录,在该目录中mysql将数据存储到容器中,由于这种映射,即使容器被破坏,数据也应持久存在。并且mysql容器只是进入db的客户端接口,并且可以看到本地目录,因为volumes_from: - data 尝试此答案,但没有用。Docker组成的持久性数据故障 编辑 …

16
Docker“错误:在分配给网络的默认设置中找不到可用的,不重叠的IPv4地址池”
我有一个apkmirror-scraper-compose具有以下结构的目录: . ├── docker-compose.yml ├── privoxy │ ├── config │ └── Dockerfile ├── scraper │ ├── Dockerfile │ ├── newnym.py │ └── requirements.txt └── tor └── Dockerfile 我正在尝试运行以下命令docker-compose.yml: version: '3' services: privoxy: build: ./privoxy ports: - "8118:8118" links: - tor tor: build: context: ./tor args: password: "" ports: - "9050:9050" …

11
Windows 10上的Docker“驱动程序无法在端点上编程外部连接”
我正在尝试$ docker-compose up -d用于一个项目,并收到以下错误消息: 错误:对于api无法启动服务api:驱动程序无法对端点dataexploration_api_1上的外部连接进行编程(8781c95937a0a4b0b8da233376f71d2fc135f46aad011401c019eb3d14a0b117):启动userland代理时出错:mkdir /port/tcp:0.0.0.0:9000:tcp80:172.19。在启动项目时遇到错误。 我想知道是否是港口?我以前曾尝试使用8080端口。该项目最初是在Mac上设置的,我已经从gitHub克隆了存储库。



11
已安装Docker但未安装Docker Compose吗?为什么?
我通过运行以下命令在centos 7上安装了docker, curl -sSL https://get.docker.com/ | sh systemctl enable docker && systemctl start docker docker run hello-world 注意:helloworld正常运行,没有问题。 但是,当我尝试运行docker-compose(docker-compose.yml存在且有效)时,它仅在Centos上给我错误(Windows版本对于docker-compose文件运行良好) /usr/local/bin/docker-compose: line 1: {error:Not Found}: command not found

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.