如何访问docker数据库

原创
ithorizon 7个月前 (08-16) 阅读数 142 #Docker

怎样访问Docker中的数据库

在Docker中运行数据库服务时,访问这些数据库大概需要一些额外的步骤。下面是一些基本的指导,帮助你通过Docker容器或者从主机系统访问Docker中的数据库。

1. 在Dockerfile中定义数据库服务

FROM mysql:latest

ENV MYSQL_ROOT_PASSWORD=my-secret-pw

或者,如果你使用docker-compose.yml文件,可以这样定义服务:

services:

db:

image: mysql:latest

environment:

MYSQL_ROOT_PASSWORD: my-secret-pw

ports:

- "3306:3306"

2. 映射端口

在运行Docker容器时,使用-p标志映射容器的端口到主机的端口,这样可以从主机访问数据库。

docker run -d -p 3306:3306 --name my-db -e MYSQL_ROOT_PASSWORD=my-secret-pw mysql:latest

3. 从主机访问数据库

一旦你的数据库容器正在运行,并且你已经映射了端口,你就可以从主机系统访问数据库了。使用你选择的数据库客户端,连接到localhost和你映射的端口。

mysql -h localhost -P 3306 -u root -p

在被提示时,输入你设置的密码。

4. 从另一个Docker容器访问数据库

如果你的数据库是在Docker中运行的,并且你也有另一个Docker容器需要访问这个数据库,你可以通过链接容器或者使用Docker网络来实现。

使用Docker网络,你可以在docker-compose.yml中定义网络,并在服务中使用它:

services:

db:

image: mysql:latest

environment:

MYSQL_ROOT_PASSWORD: my-secret-pw

networks:

- mynetwork

app:

image: myapp:latest

networks:

- mynetwork

networks:

mynetwork:

然后在你的应用程序容器中,你可以通过服务名访问数据库:

mysql -h db -P 3306 -u root -p

通过遵循这些步骤,你应该能够有效地从主机系统或从Docker容器内部访问Docker中的数据库服务。


本文由IT视界版权所有,禁止未经同意的情况下转发

文章标签: Docker


热门