docker(包括docker、mysql、tomcat的安裝,以及部署web工程檔案)
本文是在我查看了很多前輩的部落格上完成的有很多借閱的成分,主要記錄docker從安裝到部署Javaweb程式的整個過程,希望對有需要的人有所幫助,我是個菜鳥,望多多包涵。
CentOS 07 Docker 安裝
使用Ctrl+alt在虛擬機器和Windows切換滑鼠,直接複製文件裡的指令。
安裝了圖形化介面:
在虛擬機器中右鍵貼上即可
沒安裝圖形化介面:切換滑鼠游標在虛擬機器命令列按一下Ctrl+alt之後按Ctrl+V。
前提條件:
Docker 執行在 CentOS 7 上,要求系統為64位、系統核心版本為 3.10 以上。
1.使用 yum 安裝docker(CentOS 7下):
Docker 要求 CentOS 系統的核心版本高於 3.10
1.首先通過 uname -r 命令檢視你當前的核心版本
指令:uname –r |
2.使用su root切換使用者許可權到root
指令:su root |
輸入你root許可權的密碼(密碼是你安裝虛擬機器時設定的超級管理密碼),密碼正確如上圖進入root許可權
3.使用yum update確保 yum 包更新到最新。(備註:以下指令執行時會彈出很多內容,只截取了一部分圖片,需要一定時間,等待即可),出現統計資訊提示是否確認,輸入y並按下Enter。
指令:yum update |
4.解除安裝舊版本(如果安裝過舊版本的話,沒安裝過直接跳過)
指令:yum remove docker docker-common docker-selinux docker-engine |
5.安裝一些必要的系統工具:
指令:yum install -y yum-utils device-mapper-persistent-data lvm2 |
6.新增軟體源資訊:
指令:yum-config-manager --add-repo |
7.安裝 docker-ce:
指令:yum -y install docker-ce |
8.啟動並加入開機啟動
指令:systemctl start docker 指令:systemctl enable docker |
9.驗證安裝是否成功(有client和service兩部分表示docker安裝啟動都成功了)
指令:docker version |
如果失敗:重新執行第4步,接著執行第7步
2.docker安裝mysql將資料掛在宿主機
1.在虛擬機器建立本地目錄(/是指在根目錄下)
指令:mkdir /data 指令:mkdir /data/MySQL 指令:mkdir /data/MySQL/datadir |
由於本人已經建好目錄所以顯示已存在
新建三個資料夾,層級關係,我們最後把儲存路徑放到datadir下,同樣的我們在MySQL資料夾中新建一個conf.d資料夾放配置檔案:
指令:mkdir /data/MySQL/conf.d |
2.新建執行並取名為一個mysql5.7的docker服務 把埠對映到3306 MySQL儲存路徑放到新建的datadir資料夾中,把配置檔案放到conf.d中(這裡的/var.... 和/etc ....是docker服務預設位置,一重啟就沒了,所以我們要換掉),定義root賬戶密碼為123456, 執行映象是MySQL:5.7
指令:docker run --name mysql5.7 -p 3306:3306 -v/data/MySQL/datadir:/var/lib/mysql -v /data/MySQL/conf.d:/etc/mysql/conf.d -eMYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 |
(這裡省略了MYSQL:5.7的映象下載,但執行run時,如果本地沒有該映象,會從公共映象庫裡下載你指定版本的映象,若不指定:自動預設下載映象庫裡latest版本的映象)
3.進入容器內部:
指令:docker exec -it mysql5.7 /bin/bash |
4.進入mysql命令列
指令:mysql –uroot –p |
密碼是你建立mysql5.7時設定的密碼,忘記時,回看第2步(PASSWORD=123456)PASSWORD=123456
這裡密碼是不可見得,直接輸入密碼按回車即可
5.現在你可以建立專案需要的資料庫和相關的表了。
3.docker安裝tomcat
1.新建並執行一個名為tomcat01的服務 把埠對映到8080,連線到剛才建立資料庫伺服器的容器mysql5.7
指令:docker run -d -p 8080:8080 --name tomcat01 --link mysql5.7 -d tomcat[b1] |
如圖看到一長串ID編號表示tomcat新建成功
2.在瀏覽器輸入虛擬機器ip地址+:tomcat埠號8080
如:192.168.227.129:8080
虛擬機器ip:名稱為ens33對應的ip地址
指令:ip address (查詢IP地址)或 指令:ifconfig ens33 (查詢ens33的ip地址) |
如果安裝成功:會彈出如下介面
4.部署Javaweb專案
前提條件修改專案裡有關連線mysql的URL以及配置檔案的資訊
如上圖:mysql5.7是我在docker中執行的容器名(這裡也可以寫mysql5.7的ip但不推薦,因為ip會變,而容器名稱是你自己建立容器時命名的),這裡的root是mysql的賬戶名,密碼是你建立該容器時設定的密碼,這裡是123456。
至於war檔案的生成這裡就不詳細介紹了。
1. 在根目錄下新建資料夾webapps(用來存放.war檔案)
指令:mkdir /webapps |
2.通過U盤將目標檔案拷貝到根目錄下的webapps
如圖選中虛擬機器,滑鼠右鍵點選選擇可移動裝置,選擇你的U盤,選擇斷開連線(連線主機)(D)(備註:可能需要再次操作一遍,最後一步變成連線(連線主機)(D))之後就可以直接複製你優盤裡的目標檔案到根目錄下的webapps裡。
3.將根目錄下webapps裡的目標檔案複製到tomcat
(備註:首先從下面指令2開始執行一直到指令4可以看到該路徑下沒有目標檔案(注意:部署web專案時除了目標檔案,該路徑下沒有其他檔案,若有請使用rm –f 檔案全稱,刪除檔案)
按下Ctrl+d 或者輸入exit退出容器
這時從指令1進行操作
指令1: docker cp /webapps/bookManagement.war tomcat01:/usr/local/tomcat/webapps |
指令2:docker exec -it tomcat01 /bin/bash //(進入容器tomcat01內部) |
指令3:cd webapps //(進入/usr/local/tomcat/webapps路徑下) |
指令4:ls //(檢視webapps資料夾裡的檔案)此時目標檔案bookManagement已在/usr/local/tomcat/webapps路徑下 |
4.複製成功後,重新啟動tomcat01容器,會自動完成目標檔案的部署(備註:啟動tomcat01之前確保mysql5.7是啟動的,由於tomcat01連線了mysql5.7)
指令5:docker restart tomcat01 //(重啟tomcat01容器) |
至此一個Javaweb專案就在docker上部署成功了。
5.開啟瀏覽器在位址列輸入虛擬機器地址:8080/專案名稱就可以訪問了(備註如果這裡不知道虛擬機器ip地址是什麼請回看3.docker安裝tomcat的第2步)
例如:192.168.227.131:8080/bookManagement
備註:由於虛擬機器地址會變,解決方法
1. 在使用虛擬機器ip前,使用
指令:ip address 檢視ens33對應的ip地址 |
或是使用
指令:ifconfig ens33 檢視ens33對應的ip地址 |
2.將虛擬機器的ip設定為靜態ip
Docker 常用指令:
docker images //檢視本地映象 docker ps -a //檢視所有容器 docker ps //檢視當前有哪些容器正在執行 docker rmi 映象名稱/映象ID 刪除映象 docker rm 容器名稱/容器ID 刪除容器(刪除前必須先停止容器的執行) docker start 容器名稱/容器ID 啟動一個容器 docker restart 容器名稱/容器ID 重啟一個容器 docker stop 容器名稱/容器ID 停止一個在執行的容器 docker run -d -p 8081:8080 --name tomcat01 tomcat 利用映象建立一個容器 -d: 在後臺執行 -p:對映埠號 這裡將tomcat01的埠8080對映到宿主機的8081埠 --name: 為容器取名字 tomcat: 本地映象倉庫的映象 ctrl+d 退出容器且關閉, ctrl+p+q 退出容器但不關閉, docker exec -it 容器名稱/容器ID /bin/bash:進入容器
|