經過命令: docker search mysql 搜索mysql,能夠發現標記的那兩個是官方的mysql
也能夠在https://hub.docker.com上搜索mysqlsql
網站上面搜索的會有不少配置提示,docker
右邊顯示的是pull命令:數據庫
輸入命令: docker pull mysql/mysql-server bash
也能夠直接 docker run 語法,由於當run的時候,docker發現本地沒有該鏡像,回去該網站上pull工具
最好在建立鏡像的時候就指定用戶名,密碼和字符集,語法:測試
docker run -d -p 3306:3306 -e MYSQL_USER="nsky" #新增用戶名 nsky -e MYSQL_PASSWORD="password" #nksy的密碼 -e MYSQL_ROOT_PASSWORD="password" #root的密碼 --name [Name] [ImageName] #容器名稱 鏡像名稱,就是說以哪一個鏡像爲基礎建立容器 --character-set-server=utf8 #字符集 --collation-server=utf8_general_ci #級別
根據上面的語法,修改容器名稱和鏡像名稱網站
docker run -d -p 3306:3306 -e MYSQL_USER="nsky" -e MYSQL_PASSWORD="password" -e MYSQL_ROOT_PASSWORD="password" --name mysql01 mysql/mysql-server --character-set-server=utf8 --collation-server=utf8_general_ci
注意,你直接這樣複製命令是不行的,由於回車
解決方法:spa
1:不回車,變成一行3d
2:在回車後面加入空格右斜槓 \
docker run -d -p 3306:3306 \ -e MYSQL_USER="nsky" \ -e MYSQL_PASSWORD="password" \ -e MYSQL_ROOT_PASSWORD="password" \ --name mysql01 mysql/mysql-server \ --character-set-server=utf8 \ --collation-server=utf8_general_ci
而後在命令工具裏面粘貼,回車,建立成功
docker ps 查看運行的容器,狀態顯示已經啓動
啓動中是這樣的:
進入容器: docker exec -it mysql01 bash
登陸mysql : mysql -uroot -p
使用數據庫:
查看用戶名: select user,host from user;
從能夠看到root的host是localhost,說明只能經過localhost登錄,localhost之外的地方就不能鏈接了。用Navicat能夠測試下
用nsky能夠
我用nsky登錄的,沒有權限使用數據庫,用root登錄,給權限命令: GRANT ALL PRIVILEGES ON *.* TO 'nsky'@'%' WITH GRANT OPTION;
能夠在建立用戶的時候,就讓他能夠在外部鏈接: CREATE USER 'test'@'%' IDENTIFIED BY 'pwd123456';
查看字符集: show variables like '%char%';
查看當前的collation: show variables like 'collation%';
但容器一刪除,剛這些配置都沒有了,因此建議是數據卷volume ,掛載
後期建議用mount ,語法更簡單
其實就是容器的文件跟宿主機的一個綁定
退出mysql容器,輸入exit便可
語法:
#注意:須要先建立/docker/mysql/config/my.cnf文件和/docker/mysql/data文件夾
docker run -d -p 3306:3306 --name mysql01 -v=/docker/mysql/config/my.cnf:/etc/my.cnf -v=/docker/mysql/data:/var/lib/mysql mysql/mysql-server
在chentos系統中,要區分是根目錄仍是root目錄
這是root目錄,[root@localhost~]
這是根目錄 [root@localhost /]
若是是root目錄。那麼:-v=/root/mysql/m.cnf
若是是根目錄,那麼:-v=/mysql/m.cnf
my.cnf以下
[mysqld] user=mysql character-set-server=utf8 [client] default-character-set=utf8 [mysql] default-character-set=utf8
肯定後,進入容器,修改密碼
修改密碼語句
mysql5.7版本語法:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('password');
mysql5.7以後版本語法:
ALTER user 'root'@'localhost' IDENTIFIED BY '123456'
能夠經過命令: docker inspect mysql02
來看這個容器的一些參數和配置,好比咱們配置的資料卷掛載
這樣刪除容器,在從新建立一個的話的,配置依然存在
固然,你建立容器的時候,-v後面的環境變量綁定必須以前的宿主機的路徑