定制dockerfile构建tomcat

1、前提java

    在Linux环境,并已确认成功安装Docker。linux

安装Dockergit

Kubernetes默认CRI(容器运行时)为Docker,所以先安装Docker。github

$ wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repoweb

$ yum -y install docker-ce-18.06.1.ce-3.el7docker

$ systemctl enable docker && systemctl start dockerapache

$ docker --versioncentos

Docker version 18.06.1-ce, build e68fc7atomcat

2、目的bash

 

构建一个以oracle jdk version:1.8.0.131+apache tomcat version:7.0.88  Docker
将一个简单的web应用部署到建立好的Tomcat Docker 容器中。
成功启动Tomcat Docker,并正常运行部署到Tomcat中的简单应用。
3、构建JDK+Tomcat Docker步骤

 

建立Docker  目录
mkdir -p $HOME/apps/Docker/tomcat7_jre18
    2.进入刚建立的目录

cd $HOME/apps/Docker/tomcat7_jre18
    3.官网分别下载jdk-linux-1.8.131-x64.tar.gz、apache-tomcat-7.0.88.tar.gz,上传至本目录(tomcat-jre),并解压缩重命名。

tar -xvf apache-tomcat-7.0.88.tar.gz
tar -xvf jdk-linux-1.8.131-x64.tar.gz
mv apache-tomcat-7.0.88  tomcat7
mv jdk1.8.0_131 jdk18
    4.编写Docker构建文件

vi Dockerfile

#使用的基础镜像
FROM centos
#建立目录
RUN mkdir -p /docker_home/local
#把当前目录下的jdk文件夹添加到镜像
ADD tomcat7 /docker_home/local/tomcat7
ADD java18 /docker_home/local/java18
ENV JAVA_HOME /docker_home/local/java18/
ENV CATALINA_HOME /docker_home/local/tomcat7
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin
#暴露8080端口
EXPOSE 8080
#启动时运行tomcat
CMD ["/docker_home/local/tomcat7/bin/catalina.sh","run"]
    5.构建docker images镜像

#images REPOSITORY name:repos_local/tomcat7_jre18
docker build -t repos_local/tomcat7_jre18 .
    6.run images to be container

docker run -d -p 8081:8080 --name tomcat7 repos_local/tomcat7_jre18
   docker run  -d 后台执行  -p 主机暴露端口:容易端口 --name container名称(惟一)  镜像名称

   7.查看是否启动成功

docker ps
 

[root@localhost acs]# docker ps
CONTAINER ID        IMAGE                            COMMAND                  CREATED             STATUS              PORTS                                            NAMES
117b230feabb        repos_local/tomcat7_jre18  "/docker_home/tomcat7/b..."   10 hours ago        Up 11 seconds       0.0.0.0:8081->8080/tcp                           tomcat_acs
  8.访问tomcat地址(成功访问)

http://ip:8081


 

    9.进入已在运行docker tomcat 的容器中。

docker exec -it 117b230feabb /bin/bash
 docker exec -it 容器ID/容器name 设定使用语言:/bin/bash、/bin/sh

 

docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
exec [OPTIONS] CONTAINER COMMAND [ARG...]
OPTIONS说明:

-d :分离模式: 在后台运行

-i :即便没有附加也保持STDIN 打开

-t :分配一个伪终端

    10.进入tomcat docker "webapps"目录

docker exec -it 117b230feabb /bin/bash
cd webapps
pwd
/docker_home/local/tomcat7/webapps
    11.咱们另开一个终端窗口,并将测试应用("hello-world.war")上传至linux中

    测试应用上传至linux 位置本身决定,cd 至该测试应用的目录后,执行下面命令:

docker cp hello-world.war 117b230feabb:/docker_home/local/tomcat7/webapps
   上面命令是将linux中的文件传至docker 容器:docker cp 文件路径  容器ID/NAME:容器路径

    12.访问tomcat 应用

http://ip:8081/hello/
    13.访问页面成功,至此结束,谢谢你们查看本文章。

4、简单列举Docker经常使用命令

docker的使用命令
1 docker 命令介绍
docker --help
管理命令:
  container   管理容器
  image       管理镜像
  network     管理网络
命令:
  attach      介入到一个正在运行的容器
  build       根据 Dockerfile 构建一个镜像
  commit      根据容器的更改建立一个新的镜像
  cp          在本地文件系统与容器中复制 文件/文件夹
  create      建立一个新容器
  exec        在容器中执行一条命令
  images      列出镜像
  kill        杀死一个或多个正在运行的容器    
  logs        取得容器的日志
  pause       暂停一个或多个容器的全部进程
  ps          列出全部容器
  pull        拉取一个镜像或仓库到 registry
  push        推送一个镜像或仓库到 registry
  rename      重命名一个容器
  restart     从新启动一个或多个容器
  rm          删除一个或多个容器
  rmi         删除一个或多个镜像
  run         在一个新的容器中执行一条命令
  search      在 Docker Hub 中搜索镜像
  start       启动一个或多个已经中止运行的容器
  stats       显示一个容器的实时资源占用
  stop        中止一个或多个正在运行的容器
  tag         为镜像建立一个新的标签
  top         显示一个容器内的全部进程
  unpause     恢复一个或多个容器内全部被暂停的进程

2.docker build命令的使用格式:
docker build [OPTIONS] <PATH | URL | ->    

(1). 经常使用选项说明
--build-arg,设置构建时的变量
--no-cache,默认false。设置该选项,将不使用Build Cache构建镜像
--pull,默认false。设置该选项,老是尝试pull镜像的最新版本
--compress,默认false。设置该选项,将使用gzip压缩构建的上下文
--disable-content-trust,默认true。设置该选项,将对镜像进行验证
--file, -f,Dockerfile的完整路径,默认值为‘PATH/Dockerfile’
--isolation,默认--isolation="default",即Linux命名空间;其余还有process或hyperv
--label,为生成的镜像设置metadata
--squash,默认false。设置该选项,将新构建出的多个层压缩为一个新层,可是将没法在多个镜像之间共享新层;设置该选项,其实是建立了新image,同时保留原有image。
--tag, -t,镜像的名字及tag,一般name:tag或者name格式;能够在一次构建中为一个镜像设置多个tag
--network,默认default。设置该选项,Set the networking mode for the RUN instructions during build
--quiet, -q ,默认false。设置该选项,Suppress the build output and print image ID on success
--force-rm,默认false。设置该选项,老是删除掉中间环节的容器
--rm,默认--rm=true,即整个构建过程成功后删除中间环节的容器

(2.) PATH | URL | -说明:
给出命令执行的上下文。
上下文能够是构建执行所在的本地路径,也能够是远程URL,如Git库、tarball或文本文件等。
若是是Git库,如https://github.com/docker/rootfs.git#container:docker,则隐含先执行git clone --depth 1 --recursive,到本地临时目录;而后再将该临时目录发送给构建进程。
构建镜像的进程中,能够经过ADD命令将上下文中的任何文件(注意文件必须在上下文中)加入到镜像中。
-表示经过STDIN给出Dockerfile或上下文。
示例:

docker build - < Dockerfile
说明:该构建过程只有Dockerfile,没有上下文

 

docker build - < context.tar.gz
说明:其中Dockerfile位于context.tar.gz的根路径

 

 

docker build -t champagne/bbauto:latest -t champagne/bbauto:v2.1 .
docker build -f dockerfiles/Dockerfile.debug -t myapp_debug .

---------------------  原文:https://blog.csdn.net/qq_23315711/article/details/80873021 

相关文章
相关标签/搜索