其實網上關於docker上搭建mysql的文章已經很多了,只是今晚自己搭建的時候遇到一些問題,記錄一下
1.首先是pull image , docker pull mysql
2.啟動服務 docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=ncs123456# -d mysql
可是這樣確實啟動起來了,但是用客服端工具連接報2058錯誤,
3.進入到mysql換進中 docker exec -it mysql mysql -uroot -pncs123456#
4修改密碼 ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
記住一定要修改密碼(我的意思這里的密碼必須和先前的密碼要不一樣), 不修改好像不行的,因為我執行過以下指令是沒有解決問題
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #修改加密規則
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; #更新一下用戶的密碼
FLUSH PRIVILEGES;
alter user 'root'@'localhost' identified by 'ncs123456#';
所以必須修改密碼
5,一般我們都需要配置mysql的路徑, 換種說法就是讓mysql的配置和數據庫文件保存到物理機上,需要創建映射(需要先刪除先前的容器)docker run --name mysql -v D:/Docker/mysql/conf:/etc/mysql/conf.d -v d:/Docker/mysql/data:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
物理文件結構如下:
注意:先不要在你的配置文件D:/Docker/mysql/conf中添加任何內容,測試容器能否正常運行。如果可以,再往配置文件中添加配置,這樣可以方便排除錯誤;因為舊版的mysql配置不一定適用於新版的mysql。下面的錯誤的源頭就是配置文件的問題(我也一直沒有想到是它的問題)
參考 https://www.jianshu.com/p/d297b0be4157
-----------------------------------------------------------------------------
mssql 很簡單了:
1.拉取鏡像 docker pull microsoft/mssql-server-linux
2.啟動服務 docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=ncs123456#' -p 1433:1433 --name mssql -v /d/docker/mssql/data:/var/opt/mssql/data -d microsoft/mssql-server-linux
----------------------------------------------------------------------------
Redis的搭建就比較簡單了,
1.拉取鏡像 docker pull redis
2.准備物理文件 D:\Docker\redis\redis.conf 然后啟動redis,docker run -v /d/docker/redis/redis.conf:/usr/local/ect/redis/redis.conf --name redis -p 6379:6379 -d redis
3.進入redis cli操作練習