親測的運行容器命令sudo docker run -p 3306:3306 --name mymysql -e MYSQL_ROOT_PASSWORD=123456 -di 95e0fc47b096 帶上-v進行目錄映射時會出現狀態爲exit通過docker logs containerId查看日誌顯示:
mysqld: Can't read dir of '/etc/mysql/conf.d/' (Errcode: 13 - Permission denied)
第一步:搜索mysql 鏡像文件
docker search mysql
這裏面都是按照 星級 排序的,我們用最高的那一個就可以了
第二部:下載mysql的鏡像文件
直接輸入:sudo docker pull docker.io/mysql:5.7 會默認的下載最新的mysql
下載完了,我們查看一下,鏡像文件
可以發現 ,我們的服務器裏,已經有了 mysql這個鏡像文件了,接下來,我們要去啓動這個鏡像文件
讓mysql的服務跑起來
docker run -p 3306:3306 --name mymysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d 8d99edb9fd40
命令說明:
-p 3306:3306:將容器的 3306 端口映射到主機的 3306 端口。
-v -v $PWD/conf:/etc/mysql/conf.d:將主機當前目錄下的 conf/my.cnf 掛載到容器的 /etc/mysql/my.cnf。
-v $PWD/logs:/logs:將主機當前目錄下的 logs 目錄掛載到容器的 /logs。
-v $PWD/data:/var/lib/mysql :將主機當前目錄下的data目錄掛載到容器的 /var/lib/mysql 。
-e MYSQL_ROOT_PASSWORD=123456:初始化 root 用戶的密碼。
-d 運行後輸出 容器id
完成啓動之後可用命令 : docker ps 查看正在運行的容器
下面列出一些常用的命令:
$ docker ps // 查看所有正在運行容器
$ docker stop containerId // containerId 是容器的ID
$ docker ps -a // 查看所有容器
$ docker ps -a -q // 查看所有容器ID
$ docker stop $(docker ps -a -q) // stop停止所有容器
$ docker rm $(docker ps -a -q) // remove刪除所有容器 ,單個刪除直接 :docker rm containerId
$ docker rmi ee633f5d1d11 :這個是用來刪除鏡像的 後面的是鏡像id,刪除的鏡像的時候要注意,必須先停止容器,然後刪除容器,然後刪除鏡像
這個時候 我可以用一些可視化工具去連接這個mysql 數據庫了
如果出現圖示的錯誤, 解決方法:
authentication plugin cachin_sha2_pawwword canot be loaded
1:進入容器 :docker exec -it pwc-mysql /bin/bash
2:mysql -uroot -p -h localhost
緊接着會要你輸入面,就輸入你剛纔運行這個容器的時候
-e MYSQL_ROOT_PASSWORD=123456 : 輸入 123456 即可
3:修改一個密碼 ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
再次 用 可視化 客戶端連接 ,就可以了
退出 mysql交互界面 :exit
到此,mysql的 安裝 和啓動就基本上完成了,但是這裏要注意的是這裏使用的是mysql官方的鏡像文件,會帶來好多問題
可以參考:https://www.cnblogs.com/cfrost/p/6241892.html