当我们的mysql容器启动后,想要登陆mysql的数据库怎么办。以下介绍几种方法,其他容器的登陆也可以仿效。
第一:启动容器后用link链接,官方的mysql容器有以下几个环境变量。
dockerrun--namesome-mysql-eMYSQL_ROOT_PASSWORD=my-secret-pw-ddaocloud.io/mysql
dockerrun-it--linksome-mysql:mysqldaocloud.io/mysqlsh-c'execmysql-h"$MYSQL_PORT_3306_TCP_ADDR"-P"$MYSQL_PORT_3306_TCP_PORT"-uroot-p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"'
第二种方法:已经有compose启动的容器用link链接,比如我的dockerimage为pythondjangocdsample_mysql_1,可以用如下命令链接
dockerrun-ti--linkpythondjangocdsample_mysql_1:mysqldaocloud.io/mysqlsh-c'execmysql-h"$MYSQL_PORT_3306_TCP_ADDR"-P"$MYSQL_PORT_3306_TCP_PORT"-uroot-p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"'
或者用busybox链接mysql容器查看环境变量,以下为myblog_mysql_1中的环境变量。
dockerrun-ti--linkmyblog_mysql_1:mysqlbusybox
/#env
HOSTNAME=2f0ab0a2e9c5
SHLVL=1
HOME=/root
MYSQL_ENV_MYSQL_DATABASE=myblog
MYSQL_ENV_MYSQL_MAJOR=5.7
TERM=xterm
MYSQL_PORT_3306_TCP_ADDR=172.17.0.3
MYSQL_ENV_MYSQL_ROOT_PASSWORD=mysql
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
MYSQL_PORT_3306_TCP_PORT=3306
MYSQL_PORT_3306_TCP_PROTO=tcp
MYSQL_PORT=tcp://172.17.0.3:3306
MYSQL_ENV_MYSQL_VERSION=5.7.11-1debian8
MYSQL_PORT_3306_TCP=tcp://172.17.0.3:3306
PWD=/
MYSQL_NAME=/pensive_morse/mysql
以下为myblog_myblog_1链接到myblog_mysql_1中的环境变量。
dockerrun-ti--linkmyblog_myblog_1:myblogbusybox
/#env
MYBLOG_ENV_PYTHON_VERSION=2.7.11
MYBLOG_ENV_MYSQL_PORT_3306_TCP_ADDR=mysql
MYBLOG_ENV_MYSQL_PASSWORD=mysql
MYBLOG_PORT=tcp://172.17.0.4:80
HOSTNAME=5ae02b948c2c
SHLVL=1
HOME=/root
MYBLOG_ENV_MYSQL_PORT_3306_TCP_PORT=3306
MYBLOG_ENV_MYSQL_INSTANCE_NAME=myblog
MYBLOG_NAME=/nostalgic_darwin/myblog
MYBLOG_PORT_80_TCP_ADDR=172.17.0.4
MYBLOG_ENV_GPG_KEY=C01E1CAD5EA2C4F0B8E3571504C367C218ADD4FF
MYBLOG_PORT_80_TCP_PORT=80
MYBLOG_PORT_80_TCP_PROTO=tcp
TERM=xterm
MYBLOG_ENV_PYTHON_PIP_VERSION=8.1.1
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
MYBLOG_PORT_80_TCP=tcp://172.17.0.4:80
MYBLOG_ENV_LANG=C.UTF-8
MYBLOG_ENV_MYSQL_USERNAME=root
PWD=/
第三种方法:直接以client端登陆mysql
sudoapt-getinstallmysql-client
mysql-h172.17.0.3-P3306-uroot-pmysql
第四种:在容器里面添加ssh-server
[supervisord]
nodaemon=true
[program:sshd]
command=/usr/sbin/sshd-D
[program:httpd]
command=/bin/bash-c"exec/usr/sbin/httpd-DFOREGROUND"