docker学习笔记(二)—— docker部署mysql服务

1 获取mysql官方最新docker镜像

$ sudo docker pull mysql/mysql-server:latest

耐心等待下载,完成后可以通过以下命令查看下载的镜像:

$ sudo docker images

已下载的docker镜像

2 创建并启动mysql服务容器

2.1 创建一个文件夹用于挂载mysql数据库文件

$ sudo mkdir /docker/mysql_data -p

2.2 生成mysql容器

$ sudo docker run --name mysql -d --restart always -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -v /docker/mysql_data:/var/lib/mysql mysql/mysql-server

其中,--name mysql:容器指定名称为mysql-d:后台运行容器,并返回容器ID;--restart always:在容器退出时总是重启容器;-p 3306:3306:将宿主机的3306端口(前者)映射到容器的3306端口(后者);-e MYSQL_ROOT_PASSWORD=123456:设置mysql的root密码为123456-v /docker/mysql_data:/var/lib/mysql:将宿主机的目录/docker/mysql_data映射到容器的目录/var/lib/mysql,用于存放容器的mysql数据库文件。

2.3 查看容器启动状态

  • 查看已经创建的容器:
$ sudo docker ps -a
  • 查看已经启动的容器:
$ sudo docker ps -s
  • 若容器未启动,则通过以下命令启动:
$ sudo docker start mysql

其中mysql是容器名称,也可以使用CONTAINER ID(见下图)代替,如81f7c15f9415
docker学习笔记(二)—— docker部署mysql服务_第1张图片

2.4 docker容器下命令行连接mysql数据库

  • 首先进入mysql容器的bash终端:
$ sudo docker exec -it mysql bash
  • 连接mysql:
$ mysql -u root -p

输入步骤2.2设置的mysql root密码,之后就可以自由操作mysql了!

2.5 通过宿主机命令行连接mysql

  • 首先在宿主机上安装mysql客户端:
$ sudo apt-get install -y mysql-client
  • 尝试连接:
$ mysql -h 127.0.0.1 -u root -p

输入密码后显然是连接不上的:

注意图中红框的ip,这是宿主机ip,需要在mysql中添加用户允许此ip连接,其实就跟添加允许远程用户连接mysql是一样的,例子如下:
先通过步骤2.4连接到mysql,之后添加数据库test,针对此库添加用户testuser,密码是123456

CREATE DATABASE test;
GRANT ALL PRIVILEGES ON test.* TO testuser@172.17.0.1 IDENTIFIED BY '123456';
FLUSH PRIVILEGES;

docker学习笔记(二)—— docker部署mysql服务_第2张图片
然后就可以在宿主机上连接mysql数据库了:

$ mysql -h 127.0.0.1 -u testuser -p

docker学习笔记(二)—— docker部署mysql服务_第3张图片

你可能感兴趣的:(docker,mysql)