坎恩';t按照官方指示连接mysql docker容器
在以下步骤中: 启动一个mysql服务器实例 启动MySQL实例很简单: $docker run——说出一些mysql-e mysql\u ROOT\u PASSWORD=my secret pw-d mysql:tag 。。。其中,某些mysql是您要分配给容器的名称, my secret pw是为MySQL根用户和标记设置的密码 是指定所需MySQL版本的标记。见上面的列表 有关标签。从MySQL命令行客户端连接到MySQL 下面的命令启动另一个mysql容器实例并运行 针对原始mysql容器的mysql命令行客户端, 允许您对数据库实例执行SQL语句: $docker run-it--network some network--rm mysql-hsome mysql -用户示例-p 。。。其中somemysql是原始mysql容器的名称 (已连接到某个网络Docker网络) 我启动了一个mysql docker容器,然后尝试运行另一个作为mysql客户端的容器,但我不知道如何指定--network参数:坎恩';t按照官方指示连接mysql docker容器,mysql,docker,Mysql,Docker,在以下步骤中: 启动一个mysql服务器实例 启动MySQL实例很简单: $docker run——说出一些mysql-e mysql\u ROOT\u PASSWORD=my secret pw-d mysql:tag 。。。其中,某些mysql是您要分配给容器的名称, my secret pw是为MySQL根用户和标记设置的密码 是指定所需MySQL版本的标记。见上面的列表 有关标签。从MySQL命令行客户端连接到MySQL 下面的命令启动另一个mysql容器实例并运行 针对原始mysql容
我应该输入什么而不是
某些网络
?我是Docker的新手,对Docker网络一无所知。如果我使用此参数,未知MySQL服务器主机
将出现错误。如果您有多个容器一起工作,您应该阅读有关docker compose的内容,以便配置网络、主机、环境变量等
//docker-compose.yml
版本:“3.2”
服务:
mysql\u客户端:
取决于:
-mysql\u数据库
mysql\u数据库:
图片:mysql:5.7
环境:
MYSQL\u ROOT\u密码:test
MYSQL\u数据库:测试
MYSQL\u用户:测试
MYSQL_密码:test
#执行此命令以启动容器
码头工人整理
默认情况下,容器位于同一网络上,在您的mysql\u客户端中
使用mysql\u数据库
作为mysql连接的主机名。通过我发现这个docker compose脚本使Adminer和mysql协调运行
# Use root/example as user/password credentials
version: '3.1'
services:
adminer:
image: adminer
restart: always
ports:
- 8080:8080
db:
image: mysql:5.6
restart: always
environment:
MYSQL_ROOT_PASSWORD: example
将其保存到名为docker compose.yml的文件中,并使用docker compose运行它
在cmd promt中,导航到包含该文件的目录并运行以下操作:
docker编写
在启动第一个容器之前,您需要创建一个Docker网络
docker网络创建一些网络
你可以在这里使用任何你想要的名字,但我会使用somenetwork
来与问题保持一致
启动数据库容器时,还需要将其连接到同一网络
docker volume创建mysql数据#这基本上也是必需的
码头工人赛跑\
--说出一些mysql\
-e MYSQL\u ROOT\u PASSWORD=我的秘密\
-d\
--net一些网络\#匹配“docker网络创建”`
-v mysql data:/var/lib/mysql/data\#重启时不要丢失数据
mysql:tag
(也有一个命令,但重新创建容器以更改设置是一种非常正常的做法。)
运行MySQL客户端也不需要第二个容器:您可以从主机连接普通的MySQL
命令行工具。您需要从容器中发布端口
docker运行\
-p 12345:3306\
...
第一个端口号可以是不与主机上的另一个进程冲突的任何端口号;第二个数字必须是标准的MySQL端口号3306。然后,您可以使用连接到该数据库
mysql-h127.0.0.1-p12345-u示例用户-p
这个问题的其他答案都支持Docker Compose作为一种设置。Compose将docker network为您创建一个网络;详细描述此设置。但是,它在运行交互式终端应用程序方面并不出色,您可能需要执行类似于docker compose run db mysql-hdb…
的操作才能以这种方式访问它。发布的端口:
方法也将起作用