1. 程式人生 > >docker學習筆記(二)—— docker部署mysql服務

docker學習筆記(二)—— docker部署mysql服務

1 獲取mysql官方最新docker映象

$ sudo docker pull mysql/mysql-server:latest

耐心等待下載,完成後可以通過以下命令檢視下載的映象:

$ sudo docker images

已下載的docker映象

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
啟動mysql容器

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