阿里雲服務器 安裝docker、mysql踩過的坑


小白第一次買阿里雲服務器,開開心心的打開,修改登錄密碼,就直接用ssh連接服務器安裝docker了(至此埋下了大雷。。。)

首先說連接阿里雲服務器,根據文檔指示,修改密碼,重啟服務器,連接成功。開始安裝docker;

在剛開始的時候,由於網絡的原因,我們在下載的鏡像的時候,常常速度是非常慢的。所以如果下載鏡像很慢的同學,可以嘗試配置國內的加速器加速鏡像下載

附上安裝docker文檔連接:

1.登錄阿里開發者平台:https://dev.aliyun.com/search.html

2.點擊“創建我的容器鏡像”

3.注冊/登錄后,進入Docker 鏡像倉庫 (https://cr.console.aliyun.com/#/imageList),選中加速器 Tab

 

根據文檔操作非常簡單,使用加速器拉取mysql鏡像速度賊快

docker run --name mysql -v $PWD/mysql:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=xxxx -d mysql:5.7

成功創建mysql鏡像

1.查看已經運行的docker鏡像

docker ps(加-a 是查看所有鏡像)

 

 

2.連接到mysql鏡像中

docker exec -it mysql bash

mysql是鏡像的名字,鏡像每次啟動都必須有一個名字,該名字可以手動指定也可以自己生成,我這里指定了名字和端口號

連接成功以后,如下圖,已經進入到了docker mysql鏡像中

  

 3.查看mysql的啟動狀態

service mysql status

4.mysql沒有啟動可以使用以下命令啟動

service mysql start

5.輸入mysql 驗證mysql是否啟動成功

這個博主的文章非常值得參考

https://www.cnblogs.com/areyouready/p/8948552.html



我自己踩的坑:1.navicat客戶端連接不上,開始以為端口號不對,查資料后發現自己定義的是3306,端口號正確;

2.然后ip地址以為不對,以為是容器的ip地址,反復試了也是不對;ip地址其實就是宿主機ip,也就是服務器ip

3.以為賬號密碼錯誤,經排查發現沒有問題

4.由於mysql中root執行綁定在了localhost,因此需要對root進行授權,授權后,刷新后重新登錄:flush privileges;查找授權,show grants for @IP地址,發現授權沒有問題

5.mysql是否啟動着,在啟動中;

最后的最后。。。。百度可能外部訪問服務器本身就不通。。。

1.阿里雲服務器防火強是否沒有對3306端口進行授權?(至此防火牆命令學的差不多了。。確實沒有打開,但是打開后,利用telnet在windows系統上訪問遠程訪問該ip端口號依然連接不上!!!)

 

 windows電腦如何開啟telnet命令可以自行百度

如下圖失敗:

 

 

進入系統之后,發現CentOS 7默認已安裝Firewall,但是沒有啟動,所以需要先啟動Firewall,同時設置開機自啟動。

 

  1. 登錄ECS實例,執行如下命令,啟動Firewall。
    systemctl start firewalld
  2. 執行如下命令,設置開機自啟動。
    systemctl enable firewalld.service
    • 執行如下命令,查看防火牆狀態,是否為running。
      firewall-cmd --state
    • 執行如下命令,重新載入配置。比如在添加規則等之后,需要執行此命令。
      firewall-cmd --reload
    • 執行如下命令,列出支持的zone。
      firewall-cmd --get-zones
    • 執行如下命令,列出支持的服務,在列表中的服務是放行的。
      firewall-cmd --get-services
    • 執行如下命令,查看FTP服務是否支持,返回yes表示支持,返回no表示不支持。
      firewall-cmd --query-service ftp
    • 執行如下命令,臨時開放FTP服務。
      firewall-cmd --add-service=ftp
    • 執行如下命令,永久開放FTP服務。
      firewall-cmd --add-service=ftp --permanent
    • 執行如下命令,永久移除FTP服務。
      firewall-cmd --remove-service=ftp --permanent
    • 執行如下命令,永久添加80端口。
      firewall-cmd --add-port=80/tcp --permanent(開啟該端口訪問權限)
    • 執行如下命令,查看規則,此命令和iptables相同。(查看開啟的端口)
      iptables -L -n
    • 執行如下命令,查看幫助。
      man firewall-cmd

 

2. 防火牆端口開啟后依然訪問不到,但是可以ping通服務器網絡,又一頓百度,阿里雲服務器中安全組沒有打開,如下圖:

控制台-已開通的產品-雲服務器ECS:,點擊該服務器,跳轉到實例列表

 

訪問本實例安全組,打開,點擊克隆,修改配置將3306端口放開,授權對象為0.0.0.0/0是指所有網段均可以訪問該服務器的端口

 

 

 

3.至此我擔心還不生效,重啟了服務器;重啟之后,再次telnet IP 3306,依舊連接不成功,有一個坑!!docker早已經關閉了,mysql當然沒在運行。。。。

4.打開docker,重新運行mysql鏡像,再次訪問telnet IP 3306,連接成功,navicat客戶端連接成功!!!想哭,我咋那么難呢!

5.同時也證明了重啟服務器后docker關閉,但是mysql鏡像還在,手動打開鏡像,mysql正常運行;

 

 

 

 

 



 
        

 


免責聲明!

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



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