Docker配置MySQL容器
拉取MySQL鏡像
docker pull mysql:5.6
有可能會因為網絡問題失敗,重復嘗試。
創建容器
docker run -d --name selfdefinename -p 3306:3306 -e MYSQL_ROOT_PASSWORD=rw mysql:5.6
-d 后台運行,--name 設置名稱 selfdefinename 是用戶自定義的容器名稱,-p 設置端口映射,第一個3306是當前主機的端口,第二個3306指容器中的端口;-e 設置root用戶密碼為rw;最后的mysql:5.6 可以用imageID代替,代表用於創建容器的鏡像。
注:值得注意的是,如果主機已經安裝了mysql,那么它會占用3306端口,docker中的mysql將無法正常啟動。
解決方式:
1.卸載或暫停主機的mysql服務。
#暫停主機上的mysql
systemctl stop mysqld
2.創建容器時,修改docker容器的端口映射
docker run -d --name selfdefinename -p 10086:3306 -e MYSQL_ROOT_PASSWORD=rw mysql:5.6
10086是容器外部端口號,只要不被占用可以任意指定。3306是容器內部端口,mysql在不更改其配置文件時默認只會監聽3306端口。
運行容器
一般創建好容器后容器會自動運行
#運行容器
docker start 容器名或容器ID
允許遠程訪問
#首先要進入容器內部
docker exec -it 容器名或容器ID
#進入mysql
mysql -u root -p
#授權
GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "rw";
flush privileges;
#退出
exit
exit
#第一個exit退出mysql
#第二個exit退出容器的bash
Docker常用命令
新建容器
docker run -d --name 自定義容器名 鏡像ID或鏡像名
展示當前運行的容器
docker ps
展示所有容器
docker ps -a
展示所有本地鏡像
docker images
運行容器
docker start 容器名或容器ID
停止運行容器
docker stop 容器名或容器ID
刪除容器
docker rm -f 容器名或容器ID
進入容器內容bash
docker exec -it 容器名或容器ID bash
#退出容器命令:exit
關閉docker服務
systemctl stop docker