如何進入啟動的mysql docker容器


當我們的mysql 容器啟動后,想要登陸mysql 的數據庫怎么辦。以下介紹幾種方法, 其他容器的登陸也可以仿效。
第一: 啟動容器后用link 鏈接, 官方的mysql 容器有以下幾個環境變量。
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d daocloud.io/mysql
docker run -it --link some-mysql:mysql daocloud.io/mysql sh -c 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"'

 

 
第二種方法:已經有compose 啟動的容器用link鏈接, 比如我的docker image 為pythondjangocdsample_mysql_1,可以用如下命令鏈接
docker run -ti --link pythondjangocdsample_mysql_1:mysql daocloud.io/mysql sh -c 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"'

或者用busybox 鏈接mysql 容器查看環境變量, 以下為myblog_mysql_1 中的環境變量。

docker run -ti --link myblog_mysql_1:mysql busybox
/ # 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 中的環境變量。

docker run -ti --link myblog_myblog_1:myblog busybox
/ # 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
 
 sudo apt-get install mysql-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"
 
第五種:pull 一個phpmyadmin 的容器。
 此處就不講了。
 
 順便說一下, 官方的mysql docker鏡像實際也是通過volume 來實現數據的持久化。比如我的mysql 的volume 在如下地方可以找到,只有容器沒有刪除,數據就還在。
sudo ls /var/lib/docker/volumes/a36db263fc2c19121faed794a8b1ca184863c1ad3270c715df623ee267fccb0d/_data/django
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM