1. 程式人生 > >Docker實戰之創建一個tomcat容器

Docker實戰之創建一個tomcat容器

意思 alt 實戰 技術 maintain art 學習 ack to do

一、Docker與虛擬機的區別

技術分享

二、Docker學習步驟

2.1:安裝宿主操作系統

在VMVare中安裝了Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-62-generic x86_64)

64位操作系統

建議內核在 3.8 以上,執行uname –r 查看內核如下圖所示

技術分享

2.2:更新系統

Ubuntu在安裝的過程中沒有指定root用戶密碼的操作,所以我們需要給root用戶一個密碼

命令如下

sudo passwd 系統會提示Enter New UNIX OR LINUX PASSWORD

輸入即可

再次確認密碼,會提示修改成功

接下來更新系統命令

apt update && apt dist-upgrade –y或者sudo apt update && apt dist-upgrade –y

等待系統更新完成,如下圖所示

技術分享

2.3:安裝Docker

執行命令:

curl https://releases.rancher.com/install-docker/17.03.sh | sh

如下圖所示

技術分享

之後需要在線下載一些安裝資源,耐心的等待就好,安裝成功如下圖所示

技術分享

查看docker是否安裝成功,docker version ,如下圖所示顯示正確的版本號則說明安裝成功

技術分享

安裝成功後則可啟動docker服務

systemctl start docker.service

三、Docker的練習

3.1:查看容器和鏡像

執行docker ps 或者 docker images 進行查看容器或者鏡像,如下圖(因為剛裝好Docker

所以現在的容器和鏡像都是為空的下面顯示的知識標題)

技術分享

3.2:下載一個鏡像

執行docker pull 鏡像名 即可下載一個鏡像,下面以下載一個redis鏡像為例進行操作,此操作需要連接網絡,需要等待,如下圖所示

技術分享

下載完成,如下圖所示

技術分享

下載成功再次執行docker images命令可以看到我們下載的鏡像

技術分享

3.3:創建一個tomcat運行環境

3.3.1:上傳java和tomcat

分別下載如下安裝包,上傳到服務器

技術分享

3.3.2:解壓到指定的目錄

我們在Docker宿主機上創建了一個tomcat-docker目錄,把解壓好的jdk和tomcat放到該目錄,如下圖所示

技術分享

3.3.3:創建用來生成鏡像的Dockerfile文件

在tomcat-docker目錄下執行命令touch Dockerfile創建一個Dockerfile文件

Vi Dockerfile內容如下,之後保存

# 設置繼承的鏡像

FROM ubuntu:16.04

# 創建者信息

MAINTAINER wxj "[email protected]"

# 設置環境變量,所有操作都是非交互式的

ENV DEBIAN_FRONTEND noninteractive

# 設置tomcat的環境變量

ENV CATALINA_HOME /tomcat

ENV JAVA_HOME /jdk

# 復制tomcat和jdk文件到鏡像中

ADD apache-tomcat-9.0.0.M21 /tomcat

ADD jdk1.8.0_131 /jdk

# 復制啟動腳本至鏡像,並賦予腳本可執行權限

ADD run.sh /run.sh

RUN chmod +x /*.sh

RUN chmod +x /tomcat/bin/*.sh

# 暴露接口8091,這是我的tomcat接口,默認為8080

EXPOSE 8091

# 設置自啟動命令

CMD ["/run.sh"]

3.3.4:創建自動啟動文件run.sh

在創建Dockerfile的時候我們可以發現最後的一行設置自啟動命令裏面指定了/run.sh

這裏的’/’是根目錄的意思,和Linux操作系統的’/’目錄有所區別,只要Dockerfile和run.sh在同一個目錄下這個地方就可以用/來指定,下面我們在tomcat-docker路徑下執行touch run.sh創建一個run.sh文件,內容如下

#!/bin/bash

# 啟動tomcat

exec ${CATALINA_HOME}/bin/catalina.sh run

run.sh的作用是在啟動容器的時候啟動tomcat服務

3.3.5:根據Dockerfile生成鏡像

[email protected]:~/tomcat-docker# docker build -t tomcat:test1 -f /root/tomcat-docker/Dockerfile .

Sending build context to Docker daemon 391.1 MB

Step 1/12 : FROM ubuntu:16.04

---> d355ed3537e9

Step 2/12 : MAINTAINER wxj "[email protected]"

---> Using cache

---> c1f3d38837ca

Step 3/12 : ENV DEBIAN_FRONTEND noninteractive

---> Using cache

---> be1ca3b3b014

Step 4/12 : ENV CATALINA_HOME /tomcat

---> Running in ae8df355595b

---> dcba8eb85069

Removing intermediate container ae8df355595b

Step 5/12 : ENV JAVA_HOME /jdk

---> Running in 9fcfd0114cb8

---> 93155ece74c9

Removing intermediate container 9fcfd0114cb8

Step 6/12 : ADD apache-tomcat-9.0.0.M21 /tomcat

---> 5c6cb315cd7b

Removing intermediate container a205f98691c1

Step 7/12 : ADD jdk1.8.0_131 /jdk

---> 026a07f7732f

Removing intermediate container e75995168a1a

Step 8/12 : ADD run.sh /run.sh

---> bae5ce399a0d

Removing intermediate container d6661b08ec16

Step 9/12 : RUN chmod +x /*.sh

---> Running in 1c8c73ba4bbd

---> e32338aed2aa

Removing intermediate container 1c8c73ba4bbd

Step 10/12 : RUN chmod +x /tomcat/bin/*.sh

---> Running in 90397e868a4b

---> 2879d10a8022

Removing intermediate container 90397e868a4b

Step 11/12 : EXPOSE 8091

---> Running in e9e9de8bb2a5

---> 7d5fa1266ad3

Removing intermediate container e9e9de8bb2a5

Step 12/12 : CMD /run.sh

---> Running in 5ccebdc7a956

---> 1835085d375b

Removing intermediate container 5ccebdc7a956

Successfully built 1835085d375b

查看鏡像是否生成成功,執行docker images如下圖所示可以看到鏡像ID 183,則說明成功

技術分享

3.3.6:用生成的tomcat鏡像來啟動一個容器

執行如下命令

docker run -d -p 50080:8080 tomcat:test1

-p是指定宿主主機和容器的端口映射, 用宿主主機的50080端口映射容器的8080端口

查看是否啟動成功,docker ps 如下圖所示可以看到啟動成功

技術分享

3.3.7:測試容器是否部署成功

容器啟動以後,我們就可以通過宿主主機來訪問tomcat容器了,由於我們啟動容器的時候做了端口映射所以訪問的地址為:

http://192.168.1.51:50080/

如下圖所示:說明部署成功

技術分享

Docker實戰之創建一個tomcat容器