[TOC]
一、用vagrant up拉起一個基于docker的centos7虛擬機
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
config.vm.box = "centos7-base-docker"
config.vm.hostname="centos7-docker-standalone"
config.vm.synced_folder "./share", "/home/vagrant/share"
config.vm.network "private_network", ip: "192.168.10.10"
config.vm.provider "virtualbox" do |v|
v.name = "centos7-docker-standalone"
v.memory = 4096
v.cpus = 2
end
end
二、拉取一個centos7的鏡像
$ docker pull centos
$ docker run -it centos /bin/bash
/]# cat /etc/redhat-release

pull-centos7-images
三、準備Dockerfile,構(gòu)建centos7-jdk8鏡像并驗證
1、準備Dockerfile
FROM centos
MAINTAINER jacky zheng
ENV REFRESHED_AT 2018-09-25 23:45
ADD jdk-8u181-linux-x64.tar.gz /usr/java/
ENV JAVA_HOME /usr/java/jdk1.8.0_181
ENV CLASSPATH $JAVA_HOME/lib;$JAVA_HOME/jre/lib
ENV PATH $PATH:$JAVA_HOME/bin

prepare-centos7-jdk8-dockerfile
2、利用docker build -t jacky/centos7-jdk8 . 構(gòu)建鏡像
$ docker build -t jacky/centos7-jdk8 .

build-centos7-jdk8-image
3、驗證構(gòu)建的鏡像是否正確
$ docker run -it jacky/centos7-jdk8 /bin/bash
/]# java -version
/]# javac -version

run-a-centos7-jdk8-container
四、利用構(gòu)建的jdk鏡像,構(gòu)建tomcat鏡像
1、準備構(gòu)建tomcat鏡像的Dockerfile
FROM jacky/centos7-jdk8
MAINTAINER jacky zheng
ENV REFRESHED_AT 2018-09-26 22:45
ADD apache-tomcat-9.0.12.tar.gz /usr/tomcat/
ENV CATALINA_HOME /usr/tomcat/apache-tomcat-9.0.12
ENV CATALINA_BASE $CATALINA_HOME
ENV PATH $PATH:$CATALINA_HOME/lib:$CATALINA_HOME/bin
#暴露端口8080
EXPOSE 8080
#啟動時運行tomcat
CMD ["/usr/tomcat/apache-tomcat-9.0.12/bin/catalina.sh", "run"]
2、構(gòu)建tomcat鏡像,并驗證
$ ls -l
$ docker images
$ docker ps -a
$ docker build -t jacky/centos7-tomcat9 .
$ docker images
$ docker run -d -p 8081:8080 --name tomcat9-test jacky/centos7-tomcat9

build-centos7-tomcat9-image

run-a-centos7-tomcat9-container

test-tomcat9