Docker中運行MySQL5.7並掛載宿主機目錄到鏡像


1.1 拉取mysql鏡像

docker pull mysql:5.7

1.2 創建用於掛載的目錄

mkdir –p /docker/mysql/logs  /docker/mysql/conf  /docker/mysql/data

1.3 使用鏡像創建容器

#將容器中MySQL的3306端口映射到本地的3306端口,並設置登錄密碼為:123456
docker run 
--name mysql5.7
-p 3306:3306
-v /docker/mysql/data:/var/lib/mysql
-v /docker/mysql/conf:/etc/mysql/conf.d
-e MYSQL_ROOT_PASSWORD=123456
-d mysql:5.7
如果啟動多個容器需要刪除某個 可以執行docker ps -l 查詢當前運行的容器 docker rm 容器id 刪除對應的容器實例

1.4 命令參數解析:

  • --name:容器名
  • -p:映射宿主主機端口
  • -v:掛載宿主目錄到容器目錄
  • -e:設置環境變量,此處指定root密碼
  • -d:后台運行容器

1.5 進入容器

docker exec -it 容器名字 /bin/bash

[root@dc01 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
96a49c6e7235 mysql:5.7 "docker-entrypoint.s…" 4 weeks ago Up 2 minutes 0.0.0.0:3306->3306/tcp mysql5.7
fa56f865bd26 nginx:latest "nginx -g 'daemon of…" 4 weeks ago Up 16 minutes 0.0.0.0:80->80/tcp vigilant_swirles

[root@dc01 ~]# docker exec -it 96a49c6e7235 /bin/bash

root@96a49c6e7235:/# mysql -uroot -p123456

 

如果需要navicat遠程登錄需要修改mysql的配置文件/etc/mysql/my.conf,有些版本配置文件地址為/etc/mysql/mysql.conf.d/mysqld.cnf,將bind-address地址設置為無ip訪問限制:

bind-address=0.0.0.0

如果報出bash: vi: command not found,需要我們在docker容器內部自行安裝vim。使用apt-get install vim命令安裝vim

會出現如下問題:

Reading package lists... Done Building dependency tree Reading state information... Done E: Unable to locate package vim 

執行apt-get update,然后再次執行apt-get install vim即可成功安裝vim


修改完配置  需要重啟mysql服務(直接重新啟動容器)docker restart containerID/containerName

此時可以使用Navicat等工具測試連接mysql

mark


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM