我正在使用docker-组合开发一个服务,并使用以下命令将容器部署到远程主机:
eval $(docker-machine env digitaloceanserver)
docker-compose build && docker-compose stop && docker-compose rm -f && docker-compose up -d我的问题是,我正在改变笔记本电脑,我把对接机导出到新的笔记本电脑,我可以激活它们。但是,当我尝试部署新的更改时,它会引发以下错误:
创造postgres ..。创建redis ...ERROR: for postgres不能为服务postgres创建容器:B‘冲突。容器名称"/postgres“已被容器”612f3887544224aeCreatingredis“使用。errorERROR:对于redis,无法为服务创建容器-- redis: B‘冲突。容器名称"/redis“已经被容器/redis使用了。您必须删除(或重命名)该容器才能重用该名称。错误:因为postgres不能为服务postgres: B‘冲突创建容器。容器名称"/postgres“已经被容器/postgres使用了。您必须删除(或重命名)该容器才能重用该名称。错误:因为redis不能为服务创建容器redis: B‘冲突。容器名称"/redis“已经被容器/redis使用了。您必须删除(或重命名)该容器,才能重用该名称。错误:在启动项目时遇到错误。
我的码头-Compose.yml是这样的:
services:
nginx:
build: './docks/nginx/.'
ports:
- '80:80'
- "443:443"
volumes:
- letsencrypt_certs:/etc/nginx/certs
- letsencrypt_www:/var/www/letsencrypt
volumes_from:
- web:ro
depends_on:
- web
letsencrypt:
build: './docks/certbot/.'
command: /bin/true
volumes:
- letsencrypt_certs:/etc/letsencrypt
- letsencrypt_www:/var/www/letsencrypt
web:
build: './sources/.'
image: 'websource'
ports:
- '127.0.0.1:8000:8000'
env_file: '.env'
command: 'gunicorn cuidum.wsgi:application -w 2 -b :8000 --reload --capture-output --enable-stdio-inheritance --log-level=debug --access-logfile=- --log-file=-'
volumes:
- 'cachedata:/cache'
- 'mediadata:/media'
depends_on:
- postgres
- redis
celery_worker:
image: 'websource'
env_file: '.env'
command: 'python -m celery -A cuidum worker -l debug'
volumes_from:
- web
depends_on:
- web
celery_beat:
container_name: 'celery_beat'
image: 'websource'
env_file: '.env'
command: 'python -m celery -A cuidum beat --pidfile= -l debug'
volumes_from:
- web
depends_on:
- web
postgres:
container_name: 'postgres'
image: 'mdillon/postgis'
ports:
- '127.0.0.1:5432:5432'
volumes:
- 'pgdata:/var/lib/postgresql/data/'
redis:
container_name: 'redis'
image: 'redis:3.2.0'
ports:
- '127.0.0.1:6379:6379'
volumes:
- 'redisdata:/data'
volumes:
pgdata:
redisdata:
cachedata:
mediadata:
staticdata:
letsencrypt_certs:
letsencrypt_www:发布于 2019-01-10 16:52:43
您看到这些错误是因为您显式地设置了container_name:,并且在其他地方使用了相同的容器名称。删除那些显式设置。(即使对于容器间DNS,也不需要它们;Docker Compose会使用服务块的名称自动为您创建别名。)
港口冲突仍然存在潜在的问题。如果您的另一个PostgreSQL容器正在侦听同一个(默认)主机端口5432,那么您在此docker-compose.yml文件中声明的端口将与其冲突。您可能不公开数据库容器端口,或者可能需要更改此文件中的端口号。
https://stackoverflow.com/questions/54131700
复制相似问题