我无法使用连接字符串中的Docker容器名称连接到MySQL,但可以与localhost连接。
docker-compose:
mysql-docker-container:
image: mysql:latest
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=test
- MYSQL_PASSWORD=test
ports:
- 3306:3306
volumes:
- /data/mysql
app:
image: app
build:
context: ./
dockerfile: Dockerfile
depends_on:
- mysql-docker-container
links:
- mysql-docker-container:mysql-docker-container
ports:
- 9090:9090
volumes:
- /data/p2c-app
environment:
- DATABASE_HOST=mysql-docker-container
- DATABASE_USER=testuser
- DATABASE_PASWORD=testuser
- DATABASE_NAME=test
- DATABASE_PORT=3306
spring.datasource.url=jdbc:mysql://localhost:3306/test?useSSL=false&allowPublicKeyRetrieval=true
以上工作原理,但是我想使用如下容器名称-我的连接被拒绝
spring.datasource.url=jdbc:mysql://mysql-docker-container:3306/test?useSSL=false&allowPublicKeyRetrieval=true
我在做什么错了?
答案 0 :(得分:1)
如果本地主机连接有效,则可以更新df['tC'] = np.where(s.duplicated(), '', s.groupby(s).transform('size'))
print(df)
sC cC tC
A B
one 1 3 1 3
2 3 1
4 8 1
three 3 4 1 2
4 3 1
two 0 3 1 1
。
/etc/hosts
要检查是否可以从应用程序容器访问127.0.0.1 localhost mysql-docker-container
,请打开tty并执行ping操作。
mysql-docker-container
答案 1 :(得分:0)
一切都很好。
似乎数据库服务已启动,但是mysql正在启动过程中。
然后,该应用程序服务将启动,并且无法访问数据库。
对于这种情况,有一些解决方法。
但简单的一件事是您将以下内容添加到应用程序服务中。
restart: on-failure
请注意,depends_on
部分仅表示在Docker容器上下文中,而不在基础服务中。