参考:
大纲:
方法一、通过 Dockerfile构建
方法二、docker pull mysql
使用mysql镜像
局域网连接docker中的MySQL
正文:
方法一、通过 Dockerfile构建
创建Dockerfile
首先,创建目录mysql,用于存放后面的相关东西。
runoob@runoob:~$ mkdir -p ~/mysql/data ~/mysql/logs ~/mysql/conf
data目录将映射为mysql容器配置的数据文件存放路径
logs目录将映射为mysql容器的日志目录
conf目录里的配置文件将映射为mysql容器的配置文件
进入创建的mysql目录,创建Dockerfile
方法二、docker pull mysql
查找Docker Hub上的mysql镜像
runoob@runoob:/mysql$ docker search mysql
拉取镜像文件并安装
runoob@runoob:~/mysql$ docker pull mysql:5.6
使用mysql镜像
运行容器
命令说明:
- -p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口,创建容器时就填好,不然修改很麻烦,需要修改配置文件
- -v -v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。
- -v $PWD/logs:/logs:将主机当前目录下的 logs 目录挂载到容器的 /logs。
- -v $PWD/data:/var/lib/mysql :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。
- -e MYSQL_ROOT_PASSWORD=123456:初始化 root 用户的密码。
- -d 数据库版本号TAGS。查询地址。如果填的没有下载就会找到自动给你下载
- restart=always, 告诉docker,这个容器要自动启动。最好别这样做,加了这句数据库反而起不来,后续研究下原因
局域网连接docker中的MySQL
1、确保docker中MySQL已启动
2、进入命令行模式
docker exec -it mysql5719 bash
docker exec 进入容器
-t 让docker分配一个伪终端,并绑定到容器的标准输入上;
-i 让容器的标准输入保持打开;
docker_mysql2 是容器的名字。
3、进入数据库:mysql -u root -p
查看数据库版本信息:select version();
4、MySQL参考手册