1.4 docker 用mysql镜像安装二进制的mysql容器服务器
一、环境准备
此节操作,需提前按《1.3 docker 虚拟机与容器于互传文件,并制作二进制安装mysql5.7的镜像》操作后,才能实现如下功能。
地址:https://www.cnblogs.com/sc-luoxf/articles/9991444.html
1.1 上传mysql镜像
我们以centos/mysql5.7 v6 镜像为例子进行安装
[root@itpux docker]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE centos/mysql5.7 v6 35dee3f4071b 3 minutes ago 4.28 GB centos/mysql5.7/0x v2 56d2bc5d223c About an hour ago 7 GB centos/mysql5.7/0x v1 212884203729 2 hours ago 4.23 GB centos/mysql5.7 v4 5874f49a05b6 17 hours ago 419 MB docker.io/nginx latest e81eb098537d 5 days ago 109 MB docker.io/mysql 5.7 ae6b78bedf88 6 days ago 372 MB docker.io/centos latest 75835a67d134 6 weeks ago 200 MB [root@itpux docker]#
1.2 安装MYSQL容器,并生成相关文件映射和端口开放
docker run -dit --name=mysqldb -e MYSQL_ROOT_PASSWORD=root --privileged=true -v /docker/mysql5.7/log/3306/:/docker/mysql5.7/log/3306/ -v /docker/mysql5.7/app/cnf:/docker/mysql5.7/app/cnf -v /docker/mysql5.7/data/3306/:/docker/mysql5.7/data/3306/ -p 3306:3306 -h dockermysql centos/mysql5.7:v6
1.3 登录到容器内
[root@itpux ~]# docker exec -it mysqldb bash [root@dockermysql /]# df -h Filesystem Size Used Avail Use% Mounted on overlay 46G 16G 27G 38% / tmpfs 911M 0 911M 0% /dev tmpfs 911M 0 911M 0% /sys/fs/cgroup shm 64M 0 64M 0% /dev/shm /dev/sda1 46G 16G 27G 38% /etc/hosts [root@dockermysql /]# cd docker/ [root@dockermysql docker]# ll total 8 lrwxrwxrwx 1 root root 35 Nov 22 09:23 mysql5.7 -> mysql-5.7.22-linux-glibc2.12-x86_64 drwxrwxr-x 1 root root 4096 Nov 22 09:23 mysql-5.7.22-linux-glibc2.12-x86_64 [root@dockermysql docker]#
二、登录到容器进行二进制安装
2.1 上传配置文件到容器指定目录下,此配置cnf目录与创建docker时目录地址一致。因为原镜像文件已经在此目录对这些配置文件做了链接到相应启动目录,故不需要重新做映射。此处只是将容器中配置文件映射到虚拟机(母机)上,以便后期管理。
[root@itpux ~]# cd /docker/ [root@itpux docker]# ll 总用量 628740 -rw-r--r-- 1 root root 11613 11月 22 12:43 my.cnf drwxr-xr-x 5 root root 4096 11月 22 13:25 mysql5.7 -rw-r--r-- 1 root root 643790848 11月 22 12:13 mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz -rw-r--r-- 1 root root 10645 11月 22 12:43 mysql.server -rw-r--r-- 1 root root 89 11月 22 13:08 mysql.start [root@itpux docker]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 377c0bdf2086 centos/mysql5.7:v6 "/bin/bash" 3 minutes ago Up 3 minutes 0.0.0.0:3306->3306/tcp mysqldb [root@itpux docker]# docker cp my.cnf 377c0bdf2086:/docker/mysql5.7/app/cnf/ [root@itpux docker]# docker cp mysql.server 377c0bdf2086:/docker/mysql5.7/app/cnf/ [root@itpux docker]# docker cp mysql.start 377c0bdf2086:/docker/mysql5.7/app/cnf/ [root@itpux docker]#
2.2 创建必须文件,不然安装会报错。
touch /docker/mysql5.7/log/3306/mysql-error.log touch /docker/mysql5.7/log/3306/mysql-general.log touch /docker/mysql5.7/log/3306/mysql-slow.log cd /docker/mysql5.7/
2.2 对文件赋权
chown -R mysql:mysql /docker/mysql5.7/* chown -R mysql:mysql /etc/init.d/mysqld.server chown -R mysql:mysql /etc/init.d/mysqld chown -R mysql:mysql /etc/my.cnf chmod -R 775 /docker/mysql5.7/
2.3 mysql安装
进入安装目录,进行安装
cd /docker/mysql5.7/app/bin/ pwd /docker/mysql5.7/app/bin
./mysqld --initialize --user=mysql --basedir=/docker/mysql5.7/app/ --datadir=/docker/mysql5.7/data/3306/
2.4 查看初始密码
[root@dockermysql support-files]# cd /docker/mysql5.7/log/3306/ [root@dockermysql 3306]# ll total 20 -rwxrwxr-x 1 mysql mysql 12354 Nov 22 11:48 mysql-error.log -rwxrwxr-x 1 mysql mysql 0 Nov 22 11:44 mysql-general.log -rwxrwxr-x 1 mysql mysql 589 Nov 22 11:48 mysql-slow.log [root@dockermysql 3306]# cat mysql-error.log 100 200 100 200 100 200 100 200 100 200 2018-11-22T11:47:37.200186+08:00 0 [Warning] InnoDB: New log files created, LSN=48434 100 200 2018-11-22T11:47:38.490474+08:00 0 [Warning] InnoDB: Creating foreign key constraint system tables. 2018-11-22T11:47:38.548723+08:00 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 5b1c2300-ee09-11e8-b32a-0242ac110002. 2018-11-22T11:47:38.549460+08:00 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened. 2018-11-22T11:47:38.550666+08:00 1 [Note] A temporary password is generated for root@localhost: -?dMq!7gSRuh
三、数据库安装
请见https://www.cnblogs.com/sc-luoxf/articles/9991444.html,第5章节,数据库安装。
四、登录Mysql进行测试
下面请见https://www.cnblogs.com/sc-luoxf/articles/9991444.html的,第5.5章节。