docker - Docker-composer 错误:无法启动服务 db:OCI 运行时创建失败:具有 id 的容器存在
问题描述
我第一次运行 docker-compose up 时,docker 创建了组件,但是,当我只想启动容器并运行 docker-compose start 重新启动后,我收到以下错误:
ERROR: for mysqldb Cannot start service db: OCI runtime create failed: container with id exists: xxxxxxx
如果我删除容器并再次运行 docker-compose up 它可以工作,但是每次重新启动计算机时都必须重新创建容器,这是为什么呢?过去我可以通过运行 docker-compose start 来挂载容器,而现在看来我每次都必须重新创建它们。
我创建了以下 docker-composer.yml:
version: '3.3'
services:
# Database
db:
image: mysql:5.7
container_name: mysqldb
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
DB_HOST: localhost
MYSQL_ROOT_PASSWORD: testing
MYSQL_DATABASE: testing
MYSQL_USER: root
MYSQL_PASSWORD: testing
networks:
- testingnetwork
ports:
- "3307:3306"
# phpmyadmin
phpmyadmin:
depends_on:
- db
image: phpmyadmin/phpmyadmin
container_name: phpmyadmin
restart: always
ports:
- '8181:80'
environment:
PMA_HOST: db
MYSQL_ROOT_PASSWORD: testing
networks:
- testingnetwork
# Wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- '8080:80'
restart: always
container_name: testing_wordpress
volumes:
- ./public/:/var/www/html
environment:
WORDPRESS_DB_NAME: testing
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: testing
WORDPRESS_CONFIG_EXTRA: define('WP_ALLOW_MULTISITE', true );
hostname: testing.org.local
labels:
com.theimpossiblecode.expose.domain: "testing.org.local"
com.theimpossiblecode.expose.domainIsHost: "true"
networks:
testingnetwork:
aliases:
- testing.org.local
networks:
testingnetwork:
volumes:
db_data:
解决方案
如果我在环境中为 MYSQL_USER 设置“root”,则会出现错误。然后我更改了 MYSQL_USER: 测试,它运行良好。
推荐阅读
- django - Auth0 - Django 和石墨烯
- javascript - 如何在 HTML 文件中使用 observable?
- javascript - 使用 C 后端测试 AngularJS 应用程序
- android - 我正在使用自定义视图在 android 中制作折叠工具栏。
- html - 对html结构的困惑
- javascript - js.cytoscape 从左到右生成图
- http - 使用 http 和 GStreamer 流式传输视频源
- machine-learning - 聚类 VS 监督分类,在非常小的数据库的情况下
- angular - 如何在角度 6 中单击复选框重新加载视图
- ruby-on-rails - 在rails中的一段时间后自动更新布尔属性