docker學習筆記(二)—— docker部署mysql服務
阿新 • • 發佈:2019-01-11
1 獲取mysql官方最新docker映象
$ sudo docker pull mysql/mysql-server:latest
耐心等待下載,完成後可以通過以下命令檢視下載的映象:
$ sudo docker images
2 建立並啟動mysql服務容器
2.1 建立一個資料夾用於掛載mysql資料庫檔案
$ sudo mkdir /docker/mysql_data -p
2.2 生成mysql容器
$ sudo docker run --name mysql -d --restart always -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -v /docker/mysql_data:/var/lib/mysql mysql/mysql-server
其中,--name mysql
:容器指定名稱為mysql
;-d
:後臺執行容器,並返回容器ID;--restart always
:在容器退出時總是重啟容器;-p 3306:3306
:將宿主機的3306埠(前者)對映到容器的3306埠(後者);-e MYSQL_ROOT_PASSWORD=123456
:設定mysql的root密碼為123456
;-v /docker/mysql_data:/var/lib/mysql
:將宿主機的目錄/docker/mysql_data
對映到容器的目錄/var/lib/mysql
,用於存放容器的mysql資料庫檔案。
2.3 檢視容器啟動狀態
- 檢視已經建立的容器:
$ sudo docker ps -a
- 檢視已經啟動的容器:
$ sudo docker ps -s
- 若容器未啟動,則通過以下命令啟動:
$ sudo docker start mysql
其中mysql
是容器名稱,也可以使用CONTAINER ID(見下圖)代替,如81f7c15f9415
2.4 docker容器下命令列連線mysql資料庫
- 首先進入mysql容器的bash終端:
$ sudo docker exec -it mysql bash
- 連線mysql:
$ mysql -u root -p
輸入步驟2.2設定的mysql root密碼,之後就可以自由操作mysql了!
2.5 通過宿主機命令列連線mysql
- 首先在宿主機上安裝mysql客戶端:
$ sudo apt-get install -y mysql-client
- 嘗試連線:
$ mysql -h 127.0.0.1 -u root -p
輸入密碼後顯然是連線不上的:
注意圖中紅框的ip,這是宿主機ip,需要在mysql中新增使用者允許此ip連線,其實就跟新增允許遠端使用者連線mysql是一樣的,例子如下:
先通過步驟2.4連線到mysql,之後新增資料庫test,針對此庫新增使用者testuser,密碼是123456
CREATE DATABASE test;
GRANT ALL PRIVILEGES ON test.* TO [email protected]172.17.0.1 IDENTIFIED BY '123456';
FLUSH PRIVILEGES;
然後就可以在宿主機上連線mysql資料庫了:
$ mysql -h 127.0.0.1 -u testuser -p