1 下載鏡像
[root@node-11 ~]# docker pull mysql:5.7.20
2 創建mysql目錄
[root@node-11 ~]# mkdir /opt/mysql/{data,conf,logs} -p
目錄說明:
data:數據目錄
conf:配置文件
logs:日志目錄
3 編輯配置文件
[root@node-11 ~]# vim /opt/mysql/conf/mysqld.cnf
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
lower_case_table_names = 1 ## 忽略mysql查詢大小寫
注意:這只是簡單的mysql參數,具體的參數需要根據業務需求,自行添加即可,這里需要注意的是,涉及到mysql數據目錄的話,一定要寫容器內的路徑,而不是映射到宿主機的目錄。
4 啟動
[root@node-11 ~]# docker run -d -p 3306:3306 --name mysql \
-v /opt/mysql/data:/var/lib/mysql \
-v /opt/mysql/logs:/var/log/mysql \
-v /opt/mysql/conf:/etc/mysql/mysql.conf.d \
-e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.20
參數解釋:
- --name: 容器名稱
- -p 3306: 映射端口
- MYSQL_ROOT_PASSWORD:mysql初始密碼
- -v冒號前面是宿主機目錄,后面是容器目錄
查看啟動狀態

5 設置遠程登錄
[root@node-11 ~]# docker exec -it mysql /bin/bash
root@cd0fb7617eb9:/# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.20 MySQL Community Server (GPL)
Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)
mysql> exit
6 測試遠程登錄
使用navicat輸入ip地址,用戶名密碼測試連接即可

