访问运行在Docker容器中的数据库主要有以下几种方法:
在运行容器时,将容器内部的数据库端口映射到宿主机的端口:
docker run -d -p 3306:3306 --name mysql-container -e MYSQL_ROOT_PASSWORD=yourpassword mysql:latest
然后可以通过宿主机IP和映射的端口(3306)访问数据库。
docker network create my-network
docker run -d --name mysql-container --network my-network -e MYSQL_ROOT_PASSWORD=yourpassword mysql:latest
docker run -d --name app-container --network my-network your-app-image
在应用容器中,可以通过容器名(mysql-container)直接访问数据库。
docker exec -it mysql-container mysql -u root -p
在docker-compose.yml中定义服务和网络:
version: '3'
services:
db:
image: mysql:latest
environment:
MYSQL_ROOT_PASSWORD: yourpassword
ports:
- "3306:3306"
networks:
- my-network
app:
build: .
depends_on:
- db
networks:
- my-network
networks:
my-network:
driver: bridge
mysql -h 127.0.0.1 -P 3306 -u root -p
psql -h 127.0.0.1 -p 5432 -U postgres
mongo --host 127.0.0.1 --port 27017 -u username -p password
redis-cli -h 127.0.0.1 -p 6379
您需要哪种数据库的具体访问方式?或者遇到了什么问题?我可以提供更详细的指导。