Docker容器運行mysql環境

1.拉取官方鏡像(我們這裡選擇5.7,如不寫後面的版本號則會自動拉取最新版)

<code> # docker pull mysql # 拉取最新版mysql鏡像/<code>
  1. 檢查是否拉取成功
<code>$ sudo docker images/<code>
  1. 一般來說數據庫容器不需要建立目錄映射
<code># docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=235681 -d mysql
–name:容器名,此處命名為mysql
-e:配置信息,此處配置mysql的root用戶的登陸密碼
-p:端口映射,此處映射 主機3306端口 到 容器的3306端口
-d:源鏡像名,此處為 mysql/<code>
  1. 如果要建立目錄映射
<code>#docker run -p 3306:3306 --name mysql \\  
-v /usr/local/docker/mysql/conf:/etc/mysql \\
-v /usr/local/docker/mysql/logs:/var/log/mysql \\
-v /usr/local/docker/mysql/data:/var/lib/mysql \\
-e MYSQL_ROOT_PASSWORD=235681 \\
-d mysql:5.7/<code>
<code>-v:主機和容器的目錄映射關係,":"前為主機目錄,之後為容器目錄/<code>
  1. 檢查容器是否正確運行
<code>#docker container ls/<code> 
    • 可以看到容器ID,容器的源鏡像,啟動命令,創建時間,狀態,端口映射信息,容器名字

三、連接mysql#

  1. 進入docker本地連接mysql客戶端
<code># docker exec -it mysql bash # mysql -uroot -p235681/<code>

2.如果你的容器運行正常,但是無法訪問到MySQL,一般有以下幾個可能的原因:

  • 防火牆阻攔
<code># 開放端口: 
$ systemctl status firewalld
$ firewall-cmd --zone=public --add-port=3306/tcp -permanent
$ firewall-cmd --reload # 關閉防火牆:
$ sudo systemctl stop firewalld/<code>
  • 需要進入docker本地客戶端設置遠程訪問賬號
<code>$ docker exec -it mysql bash 
$ mysql -uroot -p235681 mysql> grant all privileges on *.* to root@'%' identified by "235681";/<code>


分享到:


相關文章: