docker 安装mysql
2018-03-19 17:35
281 查看
阿里云服务器
Docker 安装 MySQL查找Docker Hub上的mysql镜像runoob@runoob:/mysql$ docker search mysql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relati... 2529 [OK]
mysql/mysql-server Optimized MySQL Server Docker images. Crea... 161 [OK]
centurylink/mysql Image containing mysql. Optimized to be li... 45 [OK]
sameersbn/mysql 36 [OK]
google/mysql MySQL server for Google Compute Engine 16 [OK]
appcontainers/mysql Centos/Debian Based Customizable MySQL Con... 8 [OK]
marvambass/mysql MySQL Server based on Ubuntu 14.04 6 [OK]
drupaldocker/mysql MySQL for Drupal 2 [OK]
azukiapp/mysql Docker image to run MySQL by Azuki - http:... 2 [OK]
...这里我们拉取官方的镜像,标签为5.7runoob@runoob:~/mysql$ docker pull mysql:5.7等待下载完成后,我们就可以在本地镜像列表里查到REPOSITORY为mysql,标签为5.7的镜像。
使用mysql镜像
运行容器
runoob@runoob:~/mysql$ docker run -p 3306:3306 --name mymysql -v $PWD/conf/my.cnf:/etc/mysql/my.cnf -v $PWD/logs:/logs -v $PWD/data:/mysql_data -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6 21cb89213c93d805c5bacf1028a0da7b5c5852761ba81327e6b99bb3ea89930e runoob@runoob:~/mysql$docker run --name mysql5.7 -p 3306:3306 -v /usr/mysql/conf/my.cnf:/conf/mysql/my.cnf -v /usr/mysql/logs:/logs/mysql -v /usr/mysql/data:/data/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
命令说明:-p 3306:3306:将容器的3306端口映射到主机的3306端口
-v $PWD/conf/my.cnf:/etc/mysql/my.cnf:将主机当前目录下的conf/my.cnf挂载到容器的/etc/mysql/my.cnf
-v $PWD/logs:/logs:将主机当前目录下的logs目录挂载到容器的/logs
-v $PWD/data:/mysql_data:将主机当前目录下的data目录挂载到容器的/mysql_data
-e MYSQL_ROOT_PASSWORD=123456:初始化root用户的密码
查看容器启动情况
runoob@runoob:~/mysql$ docker ps CONTAINER ID IMAGE COMMAND ... PORTS NAMES 21cb89213c93 mysql:5.7 "docker-entrypoint.sh" ... 0.0.0.0:3306->3306/tcp mymysql
Docker 删除镜像
1. 查询镜像 docker images现在想删除第一个,ID为 99f85991949f 的镜像。
从上面看出,需要先停到ID为 67*** 的容器。
2. 查询容器 docker ps -a
删除前先停止容器docker stop 4b3e40cba75f
3. 先删除容器 docker rm 4b3e40cba75f
上面可以看出,容器已经删除。
4. 删除镜像 docker rmi bd397dc46369
5. 强制删除镜像 docker rmi -f bd397dc46369 不建议使用
注意点:1. 删除前需要保证容器是停止的 stop2. 需要注意删除镜像和容器的命令不一样。 docker rmi ID ,其中 容器(rm) 和 镜像(rmi)3. 顺序需要先删除容器
启动mysql实例
docker run --name some-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:latest
连接到本地mysql
docker run -it --link some-mysql:mysql --rm mysql sh -c 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"'
连接其他地方的mysql
docker run -it --rm mysql mysql -hsome.mysql.host -usome-mysql-user -p
切换到容器shell中
docker exec -itsome-mysql bash;
docker exec 进入容器
局域网访问不到的情况解决方法:
为了安全,首先需要设置root帐号的密码,如下
update user set authentication_string = password('root') where user = 'root';mysql> grant all privileges on *.* to root@"%" identified by "password" with grant option;
Query OK, 0 rows affected, 1 warning (0.04 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec
进入以后use mysql数据库:
mysql> use mysql;
添加root用户可以远程访问:
mysql> grant all privileges on *.* to 'root'@'%' identified by 'password123';
mysql> update `mysql`.`user` set `Grant_priv` = 'Y' where `user` = 'root';
mysql> update user set host='%' where user='root';
mysql> flush privileges;
执行完毕后,再通过工具去连接,就可以连上了。
端口映射
docker指令:docker run -p ip:hostPort:containerPort redis使用-p参数会分配宿主机的端口映射到虚拟机。
IP表示主机的IP地址。
hostPort表示宿主机的端口。
containerPort表示虚拟机的端口。支持的格式有三种:ip:hostPort:containerPort:映射指定地址的指定端口到虚拟机的指定端口(不常用)
如:127.0.0.1:3306:3306,映射本机的3306端口到虚拟机的3306端口。
ip::containerPort:映射指定地址的任意端口到虚拟机的指定端口。(不常用)
如:127.0.0.1::3306,映射本机的3306端口到虚拟机的3306端口。
hostPort:containerPort:映射本机的指定端口到虚拟机的指定端口。(常用)
如:3306:3306,映射本机的3306端口到虚拟机的3306端口。
docker port NAME查看端口映射情况。
qq技术交流群 110408216
相关文章推荐
- docker安装mysql
- 在docker上安装运行mysql实例
- docker安装mysql
- docker安装mysql
- 基于Docker技术Mysql5.6源码安装
- Docker Centos安装Mysql5.6
- Docker使用之mysql的安装
- CENTOS:Docker安装MYSQL
- docker安装mysql
- Ubuntu16.04使用docker安装MySQL
- docker mysql镜像安装和使用
- centos7使用docker下安装mysql并配置
- Docker for Mac 安装及Mysql安装使用
- centos 7.4(debian)命令及安装mysql/mariadb安装gogs,安装docker,zsh,ack
- 使用docker安装mysql服务
- docker安装mysql
- docker 安装mysql
- docker安装pmm监控mysql汇总