web項目docker化的兩種方法


標題所講的兩種方法其實就是創建docker鏡像的兩種方法

  第一種:啟動鏡像后進入容器中操作,將需要的軟件或者項目移動到容器中,安裝或者部署,然后退出即可

  第二種:編寫dockerfile,將需要的鏡像一層層疊加上去,比如我們要部署項目,可以先下載一個ubuntu基礎鏡像,然后疊加jdk,然后tomcat,然后項目

這兩種方法我都試過,區別在於,第二種比較體現docker的鏡像疊加特性,第一種到最終只有一層鏡像.

  先講第二種吧,我之前的文章有提到過dockerfile的編寫,這邊直接給出簡單的dockerfile實例和運行命令.當然編寫之前要先下一個基礎鏡像,我們選擇ubuntu:運行命令

docker search ubuntu

  注意:也可以直接運行dockerfile文件,指定的基礎鏡像須在倉庫中存在

  得到如下結果:

NAME                              DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
ubuntu                            Ubuntu is a Debian-based Linux operating s...   4241      [OK]       
ubuntu-upstart                    Upstart is an event-based replacement for ...   65        [OK]       
rastasheep/ubuntu-sshd            Dockerized SSH service, built on top of of...   29                   [OK]
torusware/speedus-ubuntu          Always updated official Ubuntu docker imag...   26                   [OK]
ubuntu-debootstrap                debootstrap --variant=minbase --components...   25        [OK]       
nickistre/ubuntu-lamp             LAMP server on Ubuntu                           8                    [OK]
nuagebec/ubuntu                   Simple always updated Ubuntu docker images...   6                    [OK]
nimmis/ubuntu                     This is a docker images different LTS vers...   5                    [OK]
nickistre/ubuntu-lamp-wordpress   LAMP on Ubuntu with wp-cli installed            5                    [OK]
maxexcloo/ubuntu                  Docker base image built on Ubuntu with Sup...   2                    [OK]
jordi/ubuntu                      Ubuntu Base Image                               1                    [OK]
admiringworm/ubuntu               Base ubuntu images based on the official u...   1                    [OK]
darksheer/ubuntu                  Base Ubuntu Image -- Updated hourly             1                    [OK]
life360/ubuntu                    Ubuntu is a Debian-based Linux operating s...   0                    [OK]
esycat/ubuntu                     Ubuntu LTS                                      0                    [OK]
lynxtp/ubuntu                     https://github.com/lynxtp/docker-ubuntu         0                    [OK]
widerplan/ubuntu                  Our basic Ubuntu images.                        0                    [OK]
datenbetrieb/ubuntu               custom flavor of the official ubuntu base ...   0                    [OK]
teamrock/ubuntu                   TeamRock's Ubuntu image configured with AW...   0                    [OK]
ustclug/ubuntu                    ubuntu image for docker with USTC mirror        0                    [OK]
webhippie/ubuntu                  Docker images for ubuntu                        0                    [OK]
ubuntucore/jenkins-ubuntu         Jenkins image based on ubuntu                   0                    [OK]
dorapro/ubuntu                    ubuntu image                                    0                    [OK]
konstruktoid/ubuntu               Ubuntu base image                               0                    [OK]
uvatbc/ubuntu                     Ubuntu images with unprivileged user            0                    [OK]

  選擇星級最高的第一個,也可以選擇其他,運行:

docker pull ubuntu

  等待下載完成后,開始寫dockerfile:

# Version: 1.0.0
# Create Time: 2015-10-16 09:04
# Author: garfield
# Description: 在最新版本的ubuntu系統中安裝jdk,構建可執行java的環境

FROM ubuntu:latest 
MAINTAINER garfield "garfield@163.com"

# 將jdk安裝壓縮包解壓到/home/jdk1.8.0_51
ADD jdk-8u51-linux-x64.tar.gz /home/

# 安裝中文語言包
#RUN locale-gen zh_CN.UTF-8

# 設置java環境變量
ENV JAVA_HOME /home/jdk1.8.0_51
ENV CLASSPATH .:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH $PATH:$JAVA_HOME/bin

# 設置語言環境變量
ENV LANG zh_CN.UTF-8
ENV LANGUAGE zh_CN:zh

   如下圖顯示,這樣放好:

  

  然后運行命令:

docker build -t 自定義名稱 路徑

 

  就會開始構建鏡像,這樣一個擁有基礎鏡像和jdk的鏡像就做好了.

  然后tomcat和web項目的安裝同上即可.

  接下來將第一種部署方法,啟動鏡像時需要掛載目錄到本地:

docker run -i -t -v /root/software/:/mnt/software/ 53a0016cd0ba /bin/bash

 

  進入系統內部:

docker exec -t -i 53a0016cd0ba /bin/bash

 

  可以看到:

root@53a0016cd0ba:/tmp/mesos-sandbox# 

 

  現在就可以開始安裝軟件了並設置環境變量了,因為進入的系統也是一個普通的linux運行環境,所以這里不贅寫具體的安裝和環境變量配置了

  最后將web項目部署到tomcat目錄下之后,編寫一個啟動腳本,准備在容器啟動的時候調用即可,看一下我的鏡像實例吧:

REPOSITORY                             TAG                 IMAGE ID            CREATED             SIZE
192.168.161.2:5000/mq_app              latest              f59fdf14b64f        3 months ago        381.8 MB
mesoscloud/marathon                    latest              e4396ffc8383        3 months ago        561.6 MB
yfix/jenkins-master                    latest              aee26ee6e30b        3 months ago        1.262 GB
python                                 latest              70c16d34e4c8        3 months ago        689.6 MB
webcenter/activemq                     latest              87fdf4718a31        3 months ago        446.3 MB
haproxy                                latest              26df93f0d499        3 months ago        139.1 MB
192.168.161.2:5000/tomcat              latest              e3de4da2f84a        3 months ago        357.4 MB
redis                                  latest              4f5f397d4b7c        4 months ago        177.6 MB

 

  其中第一個就是我制作的web項目了,應該算蠻清晰的了吧.做得比較久了有些詳情也忘了,有問題請見諒...

  對了制作后啟動除了前面說的啟動腳本之外,還需要設置端口映射,也就是-p參數(也可以設置本地網絡模式,不展開了)這樣就可以訪問了...


免責聲明!

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



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