1、docker技術概述
- docker描述:docker是一項虛擬化的容器技術(類似于虛擬機),docker技術給使用者提供一個平臺,在該平臺上可以利用提供的容器,對每一個應用程序進行單獨的封裝隔離,每一個應用程序都有屬于自己的運行和使用的空間,它們之間是互不影響,互不干擾的。
分析:docker技術工具——>相當于鯨魚貨輪——>貨輪上有很多的集裝箱——>相當于docker提供的容器——>在容器中封裝項目/應用程序以及所需要的環境(環境+應用程序)。
docker基于操作系統層面的一項虛擬化容器技術
- docker和虛擬機的異同點:
- 相同點:它們都是基于操作系統層面的虛擬化技術
- 不同點:虛擬機的使用,需要借助于第三方虛擬機工具,比如VM;虛擬機軟件(VM)有了之后,才能在該平臺上進行操作系統環境的搭建,每個操作系統所消耗的硬件資源是較大的,比如centos安裝,默認需要20G內存;操作系統有了之后,才能進行環境的搭建,比如LAMP環境;最后才能進行應用程序的部署操作;整個過程稍顯繁瑣和笨重。
- 相對于docker,我們只需要進行安裝,就可以借助于該平臺提供的容器,直接封裝應用程序和它所需要的環境。
- docker目標:簡化項目的部署流程
- docker版本:
? decker ce:社區版,免費使用
? docker ee:企業版,收費的
2、docker環境的部署
- 更改云服務器操作系統
? 阿里云控制臺:實現對自己云服務器進行配置操作
? ①停止正在運行的操作系統
- 更改實例密碼:指的是更改當前云服務器操作系統賬號的密碼,比如云服務器是centos,賬號:root
- finalshell工具:連接云服務器(操作系統)
3、docker的部署應用
- 驗證:查看操作系統版本(可選可寫)
? cat /etc/redhat-release
- 為了避免安裝出錯,建議進行更新操作(可選可寫)
? yum -y update
? reboot
- 安裝docker
? yum -y install docker
- 驗證:查看docker版本
? docker version
- 啟動docker服務
? systemctl start docker
- 添加docker開機自啟動
? systemctl enable docker
- docker搭建LAMP環境
? ①docker搭建LAMP環境兩種方案:
? 第一種把apache,mysql,php單獨做安裝;
? 第二種:找到封裝LAMP環境的鏡像文件,把他下載,并運行在容器中,我們直接使用即可
? ②查找LAMP鏡像文件
? docker search -s 10 lamp #查找收藏量或下載量大于10的lamp鏡像文件
? ③下載lamp鏡像
? docker pull lamp鏡像文件名
? 例:docker pull docker.io/tutum/lamp
? ④驗證:查看下載的鏡像文件
? docker images
? ⑤將下載好的lamp鏡像文件,運行在docker容器
? mkdir /mysql_data ——>自定義創建目錄:映射容器中運行出來的lamp環境(把容器中部分環境數據放在該目錄下)
? docker run -d - -name=lamp(容器名字,自定義) -p 8080:80 -p 3306:3306 -v /mysql_data:/var/lib/mysql docker.io/tutum/lamp
? ⑥運行完畢后,當前容器中已經把lamp鏡像文件包含的lamp環境,全部加載在容器中(相當于容器中的lamp環境已搞定)
? ⑦進入容器,進行安全設置
? docker exec -it lamp(容器名字) /bin/bash
? 初始化mysql數據庫密碼:mysql_secure_installation
? 注意:第一次提示,不做輸入,直接回車
? 接下來可以嘗試進入apache服務器提供存放程序包的位置:
? cd /var/www/html ——>前提:進入容器,因為lamp環境是在容器中加載的
? ⑧到此為止,docker以及容器中lamp環境部署的操作,已經完畢
? ⑨驗證:因為lamp環境是能夠搭建動態網站,提供WEB端應用程序部署和使用的平臺,那我們可以嘗試在docker容器的lamp環境下,部署一個WEB應用程序(網站)
? 操作:把程序包放入容器中:win系統——>云服務器centos系統——>docker容器
? 備注:因為傳遞程序包,所有就暫時退出容器:exit
? 第一步:程序包:win——>centos
? 可以借助于finalshell工具,直接把程序包拖拽/加載到centos(存放的位置自定義)
? 第二步:程序包:centos—–>docker容器
? 前提:更改程序包的權限:把所有人改為可讀可寫可執行:chmod 777 www
? 通過docker提供的cp(復制)命令,將程序包復制到lamp容器的/var/www/html目錄中
? docker cp /www lamp:/var/www/html
? 第三步:進入容器,查看復制的程序包
? docker exec -it lamp /bin/bash
? 到此為止,docker容器中既有程序包,也有該程序所需的lamp環境,接下來就可以進行訪問操作
⑩開放云服務器的訪問端口:8080和80端口號給開放出來
端口開放完畢后,就可以配合公網進行訪問:
項目訪問地址:http://公網IP:8080/www/install.php