前提

预先安装好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

posted on 2020-08-11 14:26  风停了,雨来了  阅读(164)  评论(0)    收藏  举报