我怎样才能访问我的docker玛丽亚db?
我的主要问题是,我已经使用命令docker run --name db -e MYSQL_ROOT_PASSWORD=test -d -p 3306:3306 mariadb
创build了我的mariadbdocker容器docker run --name db -e MYSQL_ROOT_PASSWORD=test -d -p 3306:3306 mariadb
我如何访问sql数据库?
在某处我看到一个解决scheme使用临时(退出容器后删除)容器,但无法find它了。
我正在寻找一个命令: sudo docker exec -it [other flags] [command] db
。
从MySQL命令行客户端连接到MariaDB以下命令将启动另一个mariadb容器实例,并针对原始mariadb容器运行mysql命令行客户端,从而允许您针对数据库实例执行SQL语句:
$ docker run -it --link some-mariadb:mysql --rm mariadb sh -c 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"'
… some-mariadb是你原来的mariadb容器的名字。
有关MySQL命令行客户端的更多信息可以在MySQL文档中find
请参阅: https : //hub.docker.com/_/mariadb/
只是mysql客户端,没有额外的docker容器
在主机上安装mysql客户端,
apt-get install mysql-client
然后使用以下命令来访问您的数据库容器。
mysql -u<user> -p<pass> -h $(docker inspect --format '{{ .NetworkSettings.IPAddress }}' <db-container>)
该命令将自动获取您的docker集装箱的IP。
确保使用相应的值replace<user>
, <pass>
和<db-container>
。 在你的情况下:
mysql -uroot -ptest -h $(docker inspect --format '{{ .NetworkSettings.IPAddress }}' db)
你的命令让mariadb在标准端口3306上运行。如果没有,你必须告诉mysql命令新的端口。