使用 docker 安装 mysql

创建容器

从 docker hub 的仓库中拉 mysql 镜像

sudo docker pull mysql

查看镜像:

docker images

运行一个 mysql 容器

docker run -p 3306:3306 --name mysql5.7-t1 -v /var/www/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=admin -d mysql:5.7

上述命令中各参数的含义:

  • run 运行一个 docker 容器
  • —name 生成的容器的名字
  • -p 3306:3306 代表这个容器中使用3306(第二个)映射到宿主主机的 3306 (第一个)端口
  • -e 设置环境变量,设置 mysql root 的密码
  • -d 守护进程
  • -v 把容器中数据 /var/lib/mysql 映射到宿主主机的目录 /var/www/mysql ,这样即使容器删除了,数据还是在的。如果指定的宿主目录下是有之前的数据,那么容器启动后还是可以访问这些数据的,此时MYSQL_ROOT_PASSWORD 是无效的。
  • 最后的 mysql:5.7 代表要使用的镜像版本,如果不指定则会使用最新版本的

命令

查看运行中的容器

docker ps

进入容器中

docker exec -it containername bash

退出容器

exit

停止容器

docker stop mysql5.7-t1

启动容器

docker start mysql5.7-t1

删除容器

sudo docker rm containername

自定义 mysql 设置

container 启动后,默认情况下我们是可以在外部访问的,下面我们通过 mysql 设置只允许本地访问。

重新开一个 container

docker run -p 3308:3306 --name mysql5.7-t2 -v /var/www/mysql:/var/lib/mysql -v /var/www/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=admin -d mysql:5.7

然后在宿主机 /var/www/conf/ 下创建 my.cnf

[mysqld]
bind-address = 127.0.0.1

重启后,就会发现这时候外部不能访问了。

参考链接

docker run
使用Docker安装、运行mysql
Official Repository mysql

发表评论

电子邮件地址不会被公开。 必填项已用*标注