本文是在我查看了很多前輩的博客上完成的有很多借閱的成分,主要記錄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 http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.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:進入容器
|