Questions tagged «docker-compose»

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

3
Docker Compose-在多个容器之间共享命名卷
我正在使用docker-compose和v3。我正在尝试在Docker中挂载卷: ./appdata:/appdata 我想将此作为卷,然后从多个容器中引用该卷。的卷配置参考仅示出了data-volume:作为命名体积,用没有值,因此它不会像以上。 services: nginx: build: ./nginx/ ports: - 80:80 links: - php volumes: - app-volume php: build: ./php/ expose: - 9000 volumes: - app-volume volumes: app-volume: ./appdata:/appdata 这给了我: 错误:在文件“ ./docker-compose.yml”中,卷“ app-volume”必须是映射而不是字符串。 显然,我知道我需要更改volumes键/值对,但是我不确定如何更改它,以便可以在服务之间共享卷。 我也已经签出,volumes_from但这实际上只允许从其他容器继承。我见过有人volumes_from在另一个容器上使用该容器,该容器包含他们想要的映射,但已command: true设置该容器,以使该容器永远不会真正运行,在我看来,这就像是黑客。 我怎样才能做到这一点? 注意,我确实有以下工作: nginx: volumes: - ./appdata:/appdata php: volumes: - ./appdata:/appdata 但这只是重复,我希望命名卷可以帮助我避免:-)

1
Docker-Compose具有多种服务
这是一个示例问题!绝不生产。在单独的容器中运行NGINX / PHP /其他服务! 启动时docker-compose up,Ubuntu容器退出ubuntu exited with code 0。 运行时docker run -d -ti -p 80:80 -v ~/sph/laravel52:/www/laravel ubuntu,一切正常。 如何使用Docker Compose复制此行为? 这是我的Dockerfile: # Version: 0.0.1 FROM ubuntu:15.04 ENV DEBIAN_FRONTEND noninteractive #INSTALL ALL RUN apt-get update && apt-get install -y \ nano \ php5-fpm \ php5-mysql \ nginx #NGINX CONF ADD …

5
Docker撰写,在net:host中运行容器
我想使用docker-compose在“主机”网络中生成3个服务。这是我的docker-compose.yml文件: version: '2' services: mysql: image: mysql net: "host" nginx: image: nginx net: "host" app: image: tomcat net: "host" 我收到以下错误: $ docker-compose up [31mERROR[0m: Validation failed in file '.\docker-compose.yml', reason(s): Unsupported config option for services.app: 'net' Unsupported config option for services.mysql: 'net' Unsupported config option for services.nginx: 'net' 我在Windows上使用boot2docker。 Docker和Docker-compose版本: …

7
如何正确链接php-fpm和Nginx Docker容器?
我正在尝试链接2个单独的容器: nginx:最新 的PHP:FPM 问题是php脚本不起作用。也许php-fpm配置不正确。这是源代码,位于我的资源库中。这是文件docker-compose.yml: nginx: build: . ports: - "80:80" - "443:443" volumes: - ./:/var/www/test/ links: - fpm fpm: image: php:fpm ports: - "9000:9000" 以及Dockerfile我用来基于nginx构建自定义图片的图片: FROM nginx # Change Nginx config here... RUN rm /etc/nginx/conf.d/default.conf ADD ./default.conf /etc/nginx/conf.d/ 最后,这是我自定义的Nginx虚拟主机配置: server { listen 80; server_name localhost; root /var/www/test; error_log /var/log/nginx/localhost.error.log; access_log …


8
Docker Compose保持容器运行
我想使用docker-compose启动服务并保持容器运行,以便我可以通过“ docker inspect”获取其IP地址。但是,容器始终在启动后立即退出。 我试图将“ command:[“ sleep”,“ 60”]“和其他内容添加到docker-compose.yml,但是每当我添加带有“ command:...”的行时,我都无法调用“ docker-compose up”因为我将收到消息“无法启动容器.....系统错误:无效的字符'k'寻找值的开始” 我还尝试向Dockerfile本身添加“ CMD sleep 60”和诸如此类的东西,但是这些命令似乎并未执行。 有没有一种简单的方法来保持容器的寿命或解决我的问题之一? 编辑:这是我要运行的撰写文件: version: '2' services: my-test: image: ubuntu command: bash -c "while true; do echo hello; sleep 2; done" 如果我在OS X下以docker-compose开头,则工作正常,但如果在Ubuntu 16.04下尝试相同操作,则会出现上述错误消息。 如果我尝试使用Dockerfile的方法,则Dockerfile如下所示: FROM ubuntu:latest CMD ["sleep", "60"] 哪个似乎什么都没做 编辑2:我必须纠正自己,原来这是Dockerfile和docker-compose.yml的相同问题:每次我向Dockerfile添加“ CMD ...”或向其中添加“ command ...”撰写文件时,出现无效字符并出现上述错误。如果我删除了这两个命令,它会完美地工作。

21
Docker错误绑定:地址已在使用中
当我docker-compose up在Docker项目中运行时,它失败并显示以下消息: Error starting userland proxy: listen tcp 0.0.0.0:3000: bind: address already in use netstat -pna | grep 3000 显示如下: tcp 0 0 0.0.0.0:3000 0.0.0.0:* LISTEN - 我已经尝试过了docker-compose down,但是没有帮助。

1
使用Docker Compose将文件复制到容器
我在Dockerfile哪里可以将现有目录(包含内容)复制到可以正常工作的容器中: Docker文件 FROM php:7.0-apache COPY Frontend/ /var/www/html/aw3somevideo/ COPY Frontend/ /var/www/html/ RUN ls -al /var/www/html RUN chown -R www-data:www-data /var/www/html RUN chmod -R 755 /var/www/html 但是当我使用docker-compose.yml文件时,只有目录,aw3somevideo而里面aw3somevideo没有任何东西。 docker-compose.yml: php: build: php/ volumes: - ./Frontend/ :/var/www/html/ - ./Frontend/index.php :/var/www/html/ ports: - 8100:80 也许我不了解它的功能,volumes如果是这种情况,请告诉我如何通过docker-compose.yml文件将现有文件复制到容器中。

3
无法链接到由docker-compose启动的正在运行的容器
我正在使用Docker容器设置本地开发环境。docker-compose.yml如下所示 version: '2' services: db: image: mongo:3 mq: image: rabbitmq:3 api: build: . image: my_app/api ports: - "3000:3000" links: - db - mq environment: - NODE_ENV=development 它开始没有错误。码头工人列出了3个正在运行的容器 docker-compose up -d docker ps e90e5a8b5d33 my_app/api "/usr/local/bin/node " 0.0.0.0:3000->3000/tcp my_app_api_1 42bfcd971b16 mongo:3 "/entrypoint.sh mongo" 27017/tcp my_app_db_1 a0685a816c47 rabbitmq:3 "/docker-entrypoint.s" 4369/tcp, 5671-5672/tcp, 25672/tcp …

4
泊坞窗撰写构建单个容器
使用Compose,如果我运行docker-compose build,它将重建所有容器: > docker-compose build Building elasticsearch Step 1 : FROM elasticsearch:2.1 ---> a05cc7ed3f32 Step 2 : RUN /usr/share/elasticsearch/bin/plugin install analysis-phonetic ---> Using cache ---> ec07bbdb8a18 Successfully built ec07bbdb8a18 Building search Step 1 : FROM php:5.5.28-fpm ---> fcd24d1058c0 ... 即使使用缓存进行重建,这也需要时间。所以我的问题是: 有没有一种方法可以只重建一个特定的容器?

7
使用Docker-Compose时如何执行Django数据库迁移?
我已经按照Docker站点上的Django Quick Start指导紧密设置了Docker Django / PostgreSQL应用程序。 第一次运行Django的manage.py migration时,使用命令sudo docker-compose run web python manage.py migrate可以正常工作。该数据库建立在Docker PostgreSQL容器内就很好了。 当我保存它们时,对Django应用本身所做的更改同样会反映在Docker Django容器中。这很棒! 但是,如果我再改在Django的模型,并尝试更新的Postgres数据库来匹配模型,都没有检测到变化所以没有迁移发生,无论我有多少次运行makemigrations或migrate试。 基本上,每次更改Django模型时,都必须删除Docker容器(使用sudo docker-compose rm),并重新开始新的迁移。 我仍在努力了解Docker,但我对它的工作方式有很多不了解,但这使我发疯。为什么不迁移看到我的更改?我究竟做错了什么?

17
Docker Networking-nginx:在上游找不到[emerg]主机
我最近开始迁移到Docker 1.9和Docker-Compose 1.5的网络功能,以使用链接进行替换。 到目前为止,nginx通过docker-compose连接到我的php5-fpm fastcgi服务器是没有问题的,该服务器位于一组中的另一台服务器中。最近,尽管当我运行docker-compose --x-networking upphp-fpm时,mongo和nginx容器会启动,但是nginx会立即退出[emerg] 1#1: host not found in upstream "waapi_php_1" in /etc/nginx/conf.d/default.conf:16 但是,如果我在运行php和mongo容器(退出nginx)时再次运行docker-compose命令,则nginx将启动并自此正常运行。 这是我的docker-compose.yml文件: nginx: image: nginx ports: - "42080:80" volumes: - ./config/docker/nginx/default.conf:/etc/nginx/conf.d/default.conf:ro php: build: config/docker/php ports: - "42022:22" volumes: - .:/var/www/html env_file: config/docker/php/.env.development mongo: image: mongo ports: - "42017:27017" volumes: - /var/mongodata/wa-api:/data/db command: --smallfiles 这是我default.conf的nginx: …

2
docker-compose start“错误:没有要启动的容器”
我正在尝试使用Docker Compose(与Windows上的Docker Machine一起)来启动一组Docker容器。 我的docker-compose.yml: version: '2' services: postgres: build: ./postgres environment: - POSTGRES_PASSWORD=mysecretpassword frontend: build: ./frontend ports: - "4567:4567" depends_on: - postgres backend: build: ./backend ports: - "5000:5000" depends_on: - postgres docker-compose build运行成功。运行时,docker-compose start我得到以下输出: Starting postgres ... done Starting frontend ... done Starting backend ... done ERROR: No containers to …


2
通过docker-compose为Docker容器提供静态IP
我正在尝试为容器提供静态IP地址。我了解我必须创建一个自定义网络。我创建了它,并且网桥接口已在主机(Ubuntu 16.x)上启动。容器从该子网获取IP,但不是我提供的静态IP。 这是我的docker-compose.yml: version: '2' services: mysql: container_name: mysql image: mysql:latest restart: always environment: - MYSQL_ROOT_PASSWORD=root ports: - "3306:3306" networks: - vpcbr apigw-tomcat: container_name: apigw-tomcat build: tomcat/. ports: - "8080:8080" - "8009:8009" networks: - vpcbr depends_on: - mysql networks: vpcbr: driver: bridge ipam: config: - subnet: 10.5.0.0/16 gateway: 10.5.0.1 aux_addresses: …

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.