ubuntu16.04環境下在docker上部署javaweb項目簡單案例


因為一些原因,接觸到了docker,經過一番研究,總算是有了一些自己的看法,有什么不對的地方,希望多多指教。

廢話不多說,首先我這里使用的虛擬機安裝的是ubuntu16.04版本,其他版本應該也可以。

當初在學習時查了很多資料,也看了很多同仁的博客,參考了https://blog.csdn.net/WANTED_Shanks/article/details/79815022 的內容,他做的是centos 7 版的,有很多共通之處;

一.Ubuntu 16.04 安裝 Docker

1.選擇國內的雲服務商,這里選擇阿里雲為例

curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -

2.安裝所需要的包

sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual

3.添加使用 HTTPS 傳輸的軟件包以及 CA 證書

sudo apt-get update sudo apt-get install apt-transport-https ca-certificates

4.添加GPG密鑰

sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D

5.添加軟件源

echo "deb https://apt.dockerproject.org/repo ubuntu-xenial main" | sudo tee /etc/apt/sources.list.d/docker.list

6.添加成功后更新軟件包緩存

sudo apt-get update

7.安裝docker

sudo apt-get install docker-engine

8.啟動 docker

sudo systemctl enable docker
sudo systemctl start docker




二.docker 部署一個簡單的javaweb項目:
    部署一個javaweb項目,我們需要兩個鏡像,tomcat,mysql
  1.下載tomcat鏡像
    首先查找tomcat鏡像   docker search tomcat

  2.我們選擇第一個下載即可拉取鏡像  docker pull tomcat

  3.參照拉取tomcat鏡像的方法拉取mysql鏡像

  

  4.啟動mysql鏡像:
      因為docker容器,關閉,重啟后,會清空容器里面的數據,所有我們用掛載的方式啟動mysql,保存數據庫數據
   現在ubuntu主機上創建一個文件夾 /usr/mysql_data  
   掛載啟動mysql鏡像:docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456-v /usr/mysql_data:/var/lib/mysql  -d mysql
  注: --name:給容器取一個別名為mysql
    -p:映射端口號,將mysql的端口號3306映射為3306
    -e: MYSQL_ROOT_PASSWORD:設置root密碼為123456
    -v:使用/usr/mysql_data掛載mysql數據文件,保存數據庫數據
    -d:后台運行容器,並返回容器ID
    mysql:鏡像名稱

  可使用docker images查看所有鏡像:

    使用docker ps 查看正在運行的容器:

  5.現在可以通過windows上的數據庫圖形化管理工具,連接測試mysql

    這里的ip地址為vm中ubuntu的ip地址,密碼為啟動mysql時,設置的密碼。然后就可以在windows桌面進行mysql的數據庫創建。

 

  6.使用Dockerfile構建自己的docker鏡像 

    修改web項目的數據庫連接信息,將ip信息改為我們啟動mysql容器時取的別名,改好,打成war包  這一點很關鍵容易搞錯

     

       對比之前我們在javaweb中連接數據庫的寫法       jdbc:mysql://localhost:3306/test      

    

      修改完成之后,將這個javaweb項目打成war包,在ubuntu系統中新建一個文件夾,將war包放入其中,

 

      再在當前文件夾下創建一個Dockerfile 文檔  在其中寫入

      from tomcat

      COPY  sushe.war   /usr/local/tomcat/webapps

      保存退出。

      

    

  7.依然在當前目錄下執行命令     使用docker build生成鏡像:
          docker build -t sushe:latest .
      注:-t :設置repository,tag
     . :運行當前文件夾下的Dockerfile文件

     查看生成的鏡像

 

  8.啟動sushe鏡像:

     

     docker run -d -p 8888:8080 --name fbm --link mysql:docker eaf2d687d1d3
        注:--link:tomcat容器與msyql容器簡歷連接,mysql為啟動mysql容器時取的別名,docker為建立連接的連接名
               eaf2d687d1d3 為sushe鏡像的image id

      再放一遍圖

      mysql為啟動mysql容器時取的別名

      docker為建立連接的連接名

    最后測試一下  

 

     測試數據庫輸入賬號密碼

      

 

       登錄成功,部署完畢

 

    在部署過程中,肯定會有很多問題,有時候雖然在本機上運行的沒問題,可是打包上傳之后就出了錯。

    所以我們可以用  docker logs tomcat  查看日志信息。

    


免責聲明!

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



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