1. 程式人生 > >docker 部署mysql

docker 部署mysql

doc pri 沖突 目錄 宿主機 grant 位置 指定 顯示數據

先介紹利用的兩個數據卷掛載的規則,這對於理解掛載mysql數據庫存儲非常有幫助。

  1. 如果掛載一個空的數據卷到容器中的一個非空目錄中,那麽這個目錄下的文件會被復制到數據卷中。
  2. 如果掛載一個非空的數據卷到容器中的一個目錄中,那麽容器中的目錄中會顯示數據卷中的數據。如果原來容器中的目錄中有數據,那麽這些原始數據會被隱藏掉。

mysql數據庫物理存儲位置/var/lib/mysql

步驟:

拉取鏡像

$docker pull mysql:5.7

運行容器

$docker run -d --name mysql -v /data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 mysql

-d : --detach,後臺運行。
--name : 為你的鏡像創建一個別名,該別名用於更好操作。
-p : 映射端口,一般我們會將默認端口進行更改,避免與本機的mysql端口沖突,如果你宿主機有mysql,請更改端口,如 -p 3307:3306。
-e : 環境變量。為mysql的root用戶設置密碼為root。
-v : 指定數據卷,意思就是將mysql容器中的/var/lib/mysql(這個是數據庫所有數據信息文件)映射到宿主機/data/mysql裏面。

允許遠程連接
連接mysql,進行設置即可

mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;

這裏又不得不提數據卷的特性,生命周期獨立於容器,意味著我們可以創建新的mysql容器,只需要指定同一個數據卷就可以了。
至此簡單的利用docker部署了一個簡單的mysql容器,如果需要更個性化的conf,配置即可。

docker 部署mysql