docker - Docker撰写两次创建服务
问题描述
我有一组 docker-compose 文件,可以在一台笔记本电脑上完美运行。我现在已经在一台新笔记本电脑上尝试了它们,它尝试两次启动相同的服务:
Creating gamersplane-mysql ...
Creating gamersplane-mysql ... error
ERROR: for gamersplane-mysql Cannot start service mysql: driver failed programming external connectivity on endpoint gamersplane-mysql (b34a05daf391646eb679288eefcaf855c20e62c4413289854388bfa0944de480): Error starting userland proxy: listen tcp4 0.0.0.0:3306: bind: address already in use
如果我运行 a docker ps -a
,它会将服务显示为CREATED
,但运行docker ps
不会将容器显示为正在运行。
我的主要码头工人组成:
version: '3.6'
volumes:
mysql_db:
driver: local
name: gp_mysql_db
services:
mysql:
container_name: gamersplane-mysql
image: mysql:5.7
env_file:
- ./.env
volumes:
# - ./docker/mysql:/docker-entrypoint-initdb.d
- mysql_db:/var/lib/mysql
使用扩展文件:
version: '3.6'
services:
mysql:
ports:
- 3306:3306
environment:
- MYSQL_ROOT_PASSWORD=test123
- MYSQL_PASSWORD=test123
由于 docker 无论在哪个系统上都应该表现相同,所以我不知道出了什么问题。
解决方案
正如评论中所建议的,我跑了sudo isof -i :3306
. 起初它没有显示任何内容,但重新启动后,mysqld
出现在该端口上。我将其关闭,再次重新启动以确保安全,现在我的撰写文件正在启动。
推荐阅读
- haskell - 如何将 show 应用于 haskell 中的任何类型?
- c++ - 使用 '\0' 停止 While 循环
- php - 使用 PHP 获取 AJAX POST
- angular - Angular - 有条件的 div 容器
- php - 如何使用 php 和 mysqli 修复上传图像
- arrays - 如何在显示数组值后创建的数组中选择内存。程序运行时如何用cin选择值
- python - 在python的列表中捕获多组项目
- r - 如何将每个类别的百分比添加到堆积条形图(ggplot2)(对于“非百分比”堆积图)
- mysql - SQL作业#4
- elasticsearch - 在 Elasticsearch 中,为什么我会收到错误消息“默认情况下在文本字段上禁用字段数据”