下拉鏡像
docker pull mysql/mysql-server:5.5
后面的mysql標簽是版本號,是可選擇的,有:
- 5.5
- 5.6
- 5.7
- 8.0
創建mysql5.5的容器
docker run --name mysql5.5 -p 3308:3306 -v ./conf:/etc/mysql/conf.d -v ./logs:/logs -v ./data:/var/lib/mysql -e MYSQL\_ROOT\_PASSWORD=123 -d mysql/mysql-server:5.5
參數解釋:
- --name 容器名字
- -p 3308:3306 物理機端口:容器內部端口
- -e 運行參數 初始化 root 用戶的密碼
- -d 后台運行 mysql/mysql-server:5.5 下載的鏡像名字加標簽
- -v ./conf:/etc/mysql/conf.d:將主機當前目錄下的 conf/my.cnf 掛載到容器的 /etc/mysql/my.cnf。//配置文件目錄
- -v ./logs:/logs:將主機當前目錄下的 logs 目錄掛載到容器的 /logs。//日志目錄
- -v ./data:/var/lib/mysql :將主機當前目錄下的data目錄掛載到容器的 /var/lib/mysql 。//數據庫文件存放目錄
修改mysql允許遠程連接
此時是無法連接到mysql的,必須修改成允許遠程連接
#通過這個命令進入容器內
docker exec -it mysql5.5 bash
#連接mysql
mysql -u root -p
#修改mysql允許遠程連接
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION
FLUSH PRIVILEGES
本機連接容器內的數據庫
# 本機連接容器內的數據庫,(我們將容器內的3306端口映射到了本機的3308,所以我們通過3308端口訪問)
mysql -u root -p -h 127.0.0.1 -P 3308
