Docker部署Mysql實踐


前言:由於Docker部署容器時,沒有指定IP,當機器重啟后,容器的IP會變化,所以在創建容器的時候,最好能固定IP;同時,在Ubuntu系統中,每次執行命令,都需要root權限,命令需要加sudo標識,可以設置為免sudo執行docker命令。

1. 創建自定義網絡,可以在創建容器的時候,使用該網絡固定ip

  • 輸入命令:sudo docker network create --subnet=172.18.0.0/16 mynetwork

  • 三台虛擬機分別創建:

    Ubuntu-1:sudo docker network create --subnet=172.19.0.0/16 mynetwork
    Ubuntu-2:sudo docker network create --subnet=172.20.0.0/16 mynetwork

2. 免sudo使用docker命令

  • 如果還沒有 docker group 就添加一個:

    $ sudo groupadd docker

  • 將用戶加入該 group 內。然后退出並重新登錄就生效啦

    參考命令:$ sudo gpasswd -a ${USER} docker
    $ sudo gpasswd -a xujk docker

  • 重啟服務:

    sudo service docker restart
    group或者重啟X會話
    newgrp - docker或者pkill X

3. 創建mysql容器+掛載(主機ip: 192.168.231.132)

  • 拉取Mysql鏡像:

    docker pull mysql:5.7.24

  • 輸入命令構建Mysql容器:

    sudo docker run -d --restart=always --privileged=true --name mysql01 --net mynetwork --ip 172.18.0.2 -v /home/xujk/Work/Docker/Mysql/mysql01/conf/:/etc/mysql/ -v /home/xujk/Work/Docker/Mysql/mysql01/data:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.24

    參數說明:

    --restart=always: 當Docker 重啟時,容器會自動啟動。
    --privileged=true:容器內的root擁有真正root權限,否則容器內root只是外部普通用戶權限
    -v /opt/mysql/conf.d/my.cnf:/etc/my.cnf:映射配置文件
    -v /opt/mysql/data/:/var/lib/mysql:映射數據目錄
    --net mynetwork --ip 172.18.0.2:指定使用網絡名,及固定ip地址

    注意:如果要掛載配置文件的話,必須要先創建文件(my.cnf),然后映射到本地目錄,如果不這樣操作的話,他會把my.cnf當成一個目錄來映射,就會報錯:

  • 使用數據庫客戶端連接工具,連接Mysql數據庫測試:

    由此可見,mysql數據庫容器創建成功,可以提供服務
  • Docker查看容器ip
    docker inspect 容器ID | grep IPAddress
    docker inspect --format=' {{.NetworkSettings.IPAddress}}' mysql01


免責聲明!

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



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