###docker pull 安装
查找Docker Hub上的mysql镜像
[root@VM_197_21_centos ~]# docker search mysql
拉取官方的镜像最新镜像
[root@VM_197_21_centos ~]# docker pull docker.io/mysql
或者拉取固定版本镜像
[root@VM_197_21_centos ~]# docker pull docker.io/mysql:5.6
###使用mysql镜像
运行容器
[root@VM_197_21_centos ~]# docker run -p 3309:3306 --privileged=true –restart always --name mysql3306 -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d docker.io/mysql
命令说明:
–restart always:开机启动
-p 3309:3306:将容器的3306端口映射到主机的3309端口
-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:/var/lib/mysql:将主机当前目录下的data目录挂载到容器的/mysql_data
-e MYSQL_ROOT_PASSWORD=123456:初始化root用户的密码
查看容器启动情况
[root@VM_197_21_centos data]# docker ps
需要查看镜像日志可使用 docker logs xx命令, 如:
docker logs -f -t --since="2019-08-09" --tail=50 gitlab(容器名称,即NAMES)
其中 -f 为查看实时日志, -t为时间 --since为从何时起
在docker安装的mysql中执行命令
docker exec -it mysql3306 bash
PS
–restart always:开机启动
–privileged=true:提升容器内权限
-e MYSQL_USER=”marvin”:添加用户marvin
-e MYSQL_PASSWORD=”pwd123”:设置marvin的密码伟pwd123
-e MYSQL_ROOT_PASSWORD=”rootpwd123”:设置root的密码伟rootpwd123
–character-set-server=utf8:设置字符集为utf8
–collation-server=utf8_general_ci:设置字符比较规则为utf8_general_ci
注意:如果运行时添加了marvin用户,用root登录后执行用户授权ALTER USER ‘marvin’@’%’ IDENTIFIED WITH mysql_native_password BY ‘password123’;,才能用远程客户端访问数据库。