官方地址:https://hub.docker.com/_/mysql?tab=tags
下载mysql
docker pull mysql:5.7
安装完成后,用 docker images命令可以看到多了一个mysql的镜像
[root@flower-core /]# docker pull mysql:5.7
5.7: Pulling from library/mysql
ffbb094f4f9e: Pull complete
df186527fc46: Pull complete
fa362a6aa7bd: Pull complete
5af7cb1a200e: Pull complete
949da226cc6d: Pull complete
bce007079ee9: Pull complete
eab9f076e5a3: Pull complete
c7b24c3f27af: Pull complete
6fc26ff6705a: Pull complete
bec5cdb5e7f7: Pull complete
6c1cb25f7525: Pull complete
Digest: sha256:d1cc87a3bd5dc07defc837bc9084f748a130606ff41923f46dec1986e0dc828d
Status: Downloaded newer image for mysql:5.7
docker.io/library/mysql:5.7
[root@flower-core /]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql 5.7 738e7101490b 7 days ago 448MB
启动mysql容器
docker run -p 3306:3306 --name mysql -v /mydata/mysql/log:/var/log/mysql -v /mydata/mysql/data:/var/lib/mysql -v /mydata/mysql/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
--name 给当前容器命名
前三个-v 是目录挂载 相当于在linux下创建了快捷方式可以看到mysql容器中的数据信息
查看docker正在运行的容器
可以看到mysql已经启动成功了
[root@flower-core /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
91b71dd3e55a mysql:5.7 "docker-entrypoint.s…" 16 seconds ago Up 15 seconds 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp mysql
进入linux bash 控制台,相当于进入mysql容器里面
docker exec -it mysql /bin/bash
root@91b71dd3e55a:/# ls
bin boot dev docker-entrypoint-initdb.d entrypoint.sh etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
退出容器
exit;
查看mysql安装路径
root@91b71dd3e55a:/# whereis mysql
mysql: /usr/bin/mysql /usr/lib/mysql /etc/mysql /usr/share/mysql
修改mysql配置文件
配置字符编码为utf-8
[root@flower-core /]# cd mydata/mysql/
[root@flower-core mysql]# ll
total 12
drwxr-xr-x 2 root root 4096 Dec 10 15:03 conf
drwxr-xr-x 5 systemd-coredump root 4096 Dec 10 15:04 data
drwxr-xr-x 2 root root 4096 Dec 10 15:03 log
[root@flower-core mysql]# cd conf/
[root@flower-core conf]# ll
total 0
[root@flower-core conf]# vi my.conf
将下面内容粘贴到文件中,保存并退出
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection =utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
重启mysql容器
docker restart mysql
查看我们保存的配置文件
[root@flower-core conf]# docker restart mysql
mysql
[root@flower-core conf]# docker exec -it mysql /bin/bash
root@91b71dd3e55a:/# cd /etc/mysql/
root@91b71dd3e55a:/etc/mysql# ls
my.conf
root@91b71dd3e55a:/etc/mysql# cat my.conf
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection =utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
设置docker重启时,mysql容器也自动重启
docker update mysql --restart=always
网友评论