前提
预先安装好docker,安装教程可以参考CentOS7安装Docker
下载镜像
docker pull mysql
启动容器
docker run -d --name mysql -p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=123qwe \
mysql
挂载准备
将mysql容器的配置文件拷出来,并创建data目录存放mysql数据,为下一步挂载使用。
挂载的好处是,避免容器销毁后配置和数据丢失,可以理解为持久化。
#拷贝配置文件
docker cp mysql:/etc/mysql/conf.d/mysql.cnf /usr/local/docker/mysql/config/
#创建data目录
cd /usr/local/docker/mysql
mkdir data
重启容器
- 删除原容器
[root@localhost mysql]# docker rm -f mysql
mysql
[root@localhost mysql]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
- 启动新容器
docker run -d --name mysql -p 3306:3306 \
-v /usr/local/docker/mysql/config/mysql.cnf:/etc/mysql/conf.d/mysql.cnf \
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123qwe \
mysql --lower_case_table_names=1
-v:挂载配置,前面为宿主主机路径,后面为容器内部路径
–lower_case_table_names:MySQL参数,表名不区分大小写(此处为mysql8需要,其他版本不需要可以去掉)
- 查看容器
[root@localhost config]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
64bedba6388f mysql "docker-entrypoint.s…" 5 minutes ago Up 5 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp mysql
-
up状态为正常启动,此时就可以跟正常使用一样连接MySQL
-
查看data目录,原本是空目录,此时已经有mysql相关data文件了,说明挂载成功
[root@localhost mysql]# cd /usr/local/docker/mysql/data/
[root@localhost data]# ll
总用量 186776
-rw-r-----. 1 systemd-bus-proxy ssh_keys 56 8月 11 14:10 auto.cnf
-rw-r-----. 1 systemd-bus-proxy ssh_keys 3104223 8月 11 14:10 binlog.000001
-rw-r-----. 1 systemd-bus-proxy ssh_keys 156 8月 11 14:10 binlog.000002
-rw-r-----. 1 systemd-bus-proxy ssh_keys 32 8月 11 14:10 binlog.index
-rw-------. 1 systemd-bus-proxy ssh_keys 1680 8月 11 14:10 ca-key.pem
-rw-r--r--. 1 systemd-bus-proxy ssh_keys 1112 8月 11 14:10 ca.pem
-rw-r--r--. 1 systemd-bus-proxy ssh_keys 1112 8月 11 14:10 client-cert.pem
-rw-------. 1 systemd-bus-proxy ssh_keys 1680 8月 11 14:10 client-key.pem
-rw-r-----. 1 systemd-bus-proxy ssh_keys 196608 8月 11 14:12 #ib_16384_0.dblwr
-rw-r-----. 1 systemd-bus-proxy ssh_keys 8585216 8月 11 14:10 #ib_16384_1.dblwr
-rw-r-----. 1 systemd-bus-proxy ssh_keys 5548 8月 11 14:10 ib_buffer_pool
-rw-r-----. 1 systemd-bus-proxy ssh_keys 12582912 8月 11 14:10 ibdata1
-rw-r-----. 1 systemd-bus-proxy ssh_keys 50331648 8月 11 14:12 ib_logfile0
-rw-r-----. 1 systemd-bus-proxy ssh_keys 50331648 8月 11 14:10 ib_logfile1
-rw-r-----. 1 systemd-bus-proxy ssh_keys 12582912 8月 11 14:10 ibtmp1
drwxr-x---. 2 systemd-bus-proxy ssh_keys 187 8月 11 14:10 #innodb_temp
drwxr-x---. 2 systemd-bus-proxy ssh_keys 143 8月 11 14:10 mysql
-rw-r-----. 1 systemd-bus-proxy ssh_keys 30408704 8月 11 14:10 mysql.ibd
drwxr-x---. 2 systemd-bus-proxy ssh_keys 8192 8月 11 14:10 performance_schema
-rw-------. 1 systemd-bus-proxy ssh_keys 1680 8月 11 14:10 private_key.pem
-rw-r--r--. 1 systemd-bus-proxy ssh_keys 452 8月 11 14:10 public_key.pem
-rw-r--r--. 1 systemd-bus-proxy ssh_keys 1112 8月 11 14:10 server-cert.pem
-rw-------. 1 systemd-bus-proxy ssh_keys 1680 8月 11 14:10 server-key.pem
drwxr-x---. 2 systemd-bus-proxy ssh_keys 28 8月 11 14:10 sys
-rw-r-----. 1 systemd-bus-proxy ssh_keys 10485760 8月 11 14:12 undo_001
-rw-r-----. 1 systemd-bus-proxy ssh_keys 12582912 8月 11 14:12 undo_002