无法使用mysqlclient从docker连接

我试图连接到我的mysql容器,但每当我尝试运行mysql -uroot -p我总是得到bash: mysql: command not found但mysql已经安装在docker容器中,当我尝试运行pip3 freeze我得到这个结果

 alembic==0.9.6 appdirs==1.4.3 bcrypt==3.1.4 certifi==2017.11.5 cffi==1.11.2 chardet==3.0.4 click==6.7 elasticsearch==5.5.1 flasgger==0.8.0 Flask==0.12.2 Flask-Cors==3.0.3 gevent==1.2.2 greenlet==0.4.12 idna==2.6 iso3166==0.8 itsdangerous==0.24 Jinja2==2.10 jsonschema==2.6.0 Mako==1.0.7 MarkupSafe==1.0 mistune==0.8.3 mock==2.0.0 mysqlclient==1.3.12 packaging==16.8 pbr==3.1.1 pybuilder==0.11.12 pycparser==2.18 pycrypto==2.6.1 pyparsing==2.2.0 python-dateutil==2.6.1 python-editor==1.0.3 PyYAML==3.12 redis==2.10.6 requests==2.18.4 six==1.11.0 SQLAlchemy==1.2.0 tblib==1.3.2 ujson==1.35 urllib3==1.21.1 validate-email==1.3 Werkzeug==0.13 

正如你可以看到mysqlclient安装。 如果我尝试检查是否可以在我的泊坞窗内使用ping访问mysql容器。 它工作正常,我能够得到回应。 我怎么现在连接,因为它说bash: mysql: command not found

– 更新 –

运行docker运行后,我连接在docker容器内,并运行pip install --no-cache-dir -r requirements.txt ,下面是输出

在这里输入图像说明

现在说要求已经满足了。 我不确定,但这是否意味着它已经安装了软件包? 以下是我的dockerfile

 FROM python:3.5.2 ADD deployment /root/.ssh RUN chmod 700 /root/.ssh/id_rsa RUN ssh-keyscan -t rsa bitbucket.org > /root/.ssh/known_hosts RUN mkdir -p /app ADD . /app WORKDIR /app RUN pip install --no-cache-dir -r requirements.txt WORKDIR /app/myproject CMD ["python", "./init.py", "-c", "config/config.yaml"] 

这里的问题是CLI命令mysql没有安装在你的主机上。 它很可能被安装在您的docker容器内。 正如其中一个注释所指出的那样,你用pip安装的mysqlclient不会安装mysql命令行工具。

作为一个快速的解决方法,我会build议运行mysql命令INSIDE你的mysql容器,像这样:

 docker exec -it <container id> mysql -u root -h localhost -p