Centos 6.5安裝Docker並搭建java web運行環境

1.說明

因爲Docker僅在內核版本不低於2.6.32-431.el6.x86_64一下的版本上支持,因此,在安裝Docker前請首先確認Centos系統的內核版本。javascript

確認內核:java

[root@localhost ~]# uname -r
2.6.32-431.el6.x86_64

若是結果顯示如上,或者比這個版本高,則能夠繼續往下走,不然,請查閱如何升級centos系統內核的教程,此處再也不贅述。python

2.安裝

因爲不一樣的源安裝的Docker版本也不同,所以再此處,我使用了一下的源,,請分別執行下面的兩行命令:linux

[root@localhost ~]# rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
[root@localhost ~]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

安裝Dockerweb

[root@localhost ~]# yum -y install docker-io

檢查Docker是否安裝成功:docker

[root@localhost ~]# docker version
Client version: 1.7.1
Client API version: 1.19
Go version (client): go1.4.2
Git commit (client): 786b29d/1.7.1
OS/Arch (client): linux/amd64
Get http:///var/run/docker.sock/v1.19/version: dial unix /var/run/docker.sock: no such file or directory. Are you trying to connect to a TLS-enabled daemon without TLS?

啓Docker服務apache

[root@localhost ~]# service docker start

設置開機啓動centos

[root@localhost ~]# chkconfig docker on


3.搭建java Web運行環境

3.1安裝鏡像

首先,咱們須要去下載一個Docker鏡像,這個鏡像已經安裝了咱們所需的全部軟件的一個操做系統。咱們就拿centos鏡像來作演示,下載此鏡像能夠前往Docker官網下載,若是官網不能訪問,請去搜索引擎上搜索Docker鏡像,下面我提供一個國內鏡像網站:https://hub.tenxcloud.com ,在這個鏡像網站搜索centos,而後在出現的結果中選擇官方鏡像,點擊進去,複製鏡像URL,我使用的是阿里的鏡像,URL以下例子:docker pull index.tenxcloud.com/dockerxman/docker-centos瀏覽器

將上述Docker鏡像URL複製後拷貝到本地命令窗口中運行,便可下載此鏡像:tomcat

docker pull index.tenxcloud.com/dockerxman/docker-centos

等待命令運行下載完成後,就可使用以下命令查看本地鏡像列表:

docker images

看到以下信息,表示鏡像已經有了,接下來咱們就能夠啓動容器了。

REPOSITORY                TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
docker.cn/docker/centos   centos6             25c5298b1a36        7 weeks ago         215.8 MB

3.2使用Docker容器

只需使用如下命令便可啓動容器:

docker run -i -t -v /root/software/:/mnt/software/ 25c5298b1a36 /bin/bash

這條命令比較長,咱們稍微分解一下,其實包含如下三個部分:

docker run <相關參數> <鏡像 ID> <初始命令>

其中,相關參數包括:

    -i:表示以「交互模式」運行容器
    -t:表示容器啓動後會進入其命令行
    -v:表示須要將本地哪一個目錄掛載到容器中,格式:-v <宿主機目錄>:<容器目錄>

假設咱們的全部安裝程序都放在了宿主機的/root/software/目錄下,如今須要將其掛載到容器的/mnt/software/目錄下。

須要說明的是,不必定要使用「鏡像 ID」,也可使用「倉庫名:標籤名」,例如:docker.cn/docker/centos:centos6。

初始命令表示一旦容器啓動,須要運行的命令,此時使用「/bin/bash」,表示什麼也不作,只需進入命令行便可。


3.3 安裝相關軟件

3.3.1安裝jdk

爲了搭建 Java Web 運行環境,咱們須要安裝 JDK 與 Tomcat,下面的過程均在容器內部進行。咱們不妨選擇/opt/目錄做爲安裝目錄,首先須要經過cd /opt/命令進入該目錄。
安裝 JDK
首先,解壓 JDK 程序包:

tar -zxf /mnt/software/jdk-7u67-linux-x64.tar.gz -C .

而後,重命名 JDK 目錄:

mv jdk1.7.0_67/ jdk/
3.3.2 安裝 Tomcat

首先,解壓 Tomcat 程序包:

tar -zxf /mnt/software/apache-tomcat-7.0.55.tar.gz -C .

而後,重命名 Tomcat 目錄:

mv apache-tomcat-7.0.55/ tomcat/
3.3.3 設置環境變量

首先,編輯.bashrc文件

vi ~/.bashrc

而後,在該文件末尾添加以下配置:

export JAVA_HOME=/opt/jdk
export PATH=$PATH:$JAVA_HOME

最後,須要使用source命令,讓環境變量生效:

source ~/.bashrc
3.3.4 編寫運行腳本

咱們須要編寫一個運行腳本,當啓動容器時,運行該腳本,啓動 Tomcat,具體過程以下:

首先,建立運行腳本:

vi /root/run.sh

而後,編輯腳本內容以下:

#!/bin/bash
source ~/.bashrc
sh /opt/tomcat/bin/catalina.sh run

注意:這裏必須先加載環境變量,而後使用 Tomcat 的運行腳原本啓動 Tomcat 服務。
最後,爲運行腳本添加執行權限:

chmod u+x /root/run.sh

退出容器

當以上步驟所有完成後,可以使用exit命令,退出容器。

隨後,可以使用以下命令查看正在運行的容器:

docker ps

此時,您應該看不到任何正在運行的程序,由於剛纔已經使用exit命令退出的容器,此時容器處於中止狀態,可以使用以下命令查看全部容器:

docker ps -a

輸出以下內容:

CONTAINER ID        IMAGE                             COMMAND             CREATED             STATUS                      PORTS               NAMES
57c312bbaad1        docker.cn/docker/centos:centos6   "/bin/bash"         27 minutes ago      Exited (0) 19 seconds ago                       naughty_goldstine

記住以上CONTAINER ID(容器 ID),隨後咱們將經過該容器,建立一個可運行 Java Web 的鏡像。


3.3.5 建立 Java Web 鏡像

使用如下命令,根據某個「容器 ID」來建立一個新的「鏡像」:

docker commit 57c312bbaad1 huangyong/javaweb:0.1

該容器的 ID 是「57c312bbaad1」,所建立的鏡像名是「huangyong/javaweb:0.1」,隨後可以使用鏡像來啓動 Java Web 容器。
啓動 Java Web 容器

有必要首先使用docker images命令,查看當前全部的鏡像:

REPOSITORY                TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
huangyong/javaweb         0.1                 fc826a4706af        38 seconds ago      562.8 MB
docker.cn/docker/centos   centos6             25c5298b1a36        7 weeks ago         215.8 MB

可見,此時已經看到了最新建立的鏡像「huangyong/javaweb:0.1」,其鏡像 ID 是「fc826a4706af」。正如上面所描述的那樣,咱們能夠經過「鏡像名」或「鏡像 ID」來啓動容器,與上次啓動容器不一樣的是,咱們如今再也不進入容器的命令行,而是直接啓動容器內部的 Tomcat 服務。此時,須要使用如下命令:

docker run -d -p 58080:8080 --name javaweb huangyong/javaweb:0.1 /root/run.sh

稍做解釋:

    -d:表示以「守護模式」執行/root/run.sh腳本,此時 Tomcat 控制檯不會出如今輸出終端上。
    -p:表示宿主機與容器的端口映射,此時將容器內部的 8080 端口映射爲宿主機的 58080 端口,這樣就向外界暴露了 58080 端口,可經過 Docker 網橋來訪問容器內部的 8080 端口了。
    --name:表示容器名稱,用一個有意義的名稱命名便可。

關於 Docker 網橋的內容,須要補充說明一下。實際上 Docker 在宿主機與容器之間,搭建了一座網絡通訊的橋樑,咱們可經過宿主機 IP 地址與端口號來映射容器內部的 IP 地址與端口號,

在一系列參數後面的是「鏡像名」或「鏡像 ID」,怎麼方便就怎麼來。最後是「初始命令」,它是上面編寫的運行腳本,裏面封裝了加載環境變量並啓動 Tomcat 服務的命令。

當運行以上命令後,會當即輸出一長串「容器 ID」,咱們可經過docker ps命令來查看當前正在運行的容器。

CONTAINER ID        IMAGE                   COMMAND             CREATED             STATUS              PORTS                     NAMES
82f47923f926        huangyong/javaweb:0.1   "/root/run.sh"      4 seconds ago       Up 3 seconds        0.0.0.0:58080->8080/tcp   javaweb
3.3.6 嘗試訪問

在瀏覽器中,輸入如下地址,便可訪問 Tomcat 首頁:

http://192.168.65.132:58080/

注意:這裏使用的是宿主機的 IP 地址,與對外暴露的端口號 58080,它映射容器內部的端口號 8080。

相關文章
相關標籤/搜索