2018-05-04~2018-05-06 在docker上生成运行了tomcat的容器

1、创建文件夹
$ mkdir mytomcat

2、切换到文件夹,且将下载好的jdk-8u162-linux-x64.tar.gz、apache-tomcat-7.0.85.tar.gz压缩包拷贝到此目录下(自行编写命令)。
$ cd mytomcat

3、生成Dockerfile文件并编辑内容
$ gedit Dockerfile
FROM ubuntu:16.04
ADD jdk-8u162-linux-x64.tar.gz /java/
ADD apache-tomcat-7.0.85.tar.gz /tomcat/
ENV JAVA_HOME=/java/jdk1.8.0_162
ENV PATH=$PATH:$JAVA_HOME/bin
EXPOSE 8080
CMD ["/tomcat/apache-tomcat-7.0.85/bin/catalina.sh", "run"]

底层镜像配置的环境变量、启动的sh文件,为什么在顶层无效了?用ENV配置变量。

使用startup.sh无法自行启动tomcat,一定要用catalina.sh

调试过程尝试的命令:
#ADD dockerd  /etc/rc.d/init.d/
#RUN chmod 777  /etc/rc.d/init.d/dockerd
#CMD /etc/rc.d/init.d/dockerd
#CMD /bin/bash
#CMD /tomcat/apache-tomcat-7.0.85/bin/startup.sh
#RUN ps -ef

4、创建镜像
$ docker build -t mytomcat:v1 .

5、创建容器。为什么有时候容器不会自动启动?因为没有加"bash”指令。
$ docker run -it --name mytomcat -d mytomcat:v1

6、检测容器是否启动
$ docker ps -a

7、查询容器对应的ip
$ docker inspect mytomcat

8、在浏览器上打开tomcat验证是否成功
http://172.17.0.2:8080/

9、进入容器验证jdk服务是否启动
$ docker exec -it mytomcat bash
[email protected]:/# ps -ef
[email protected]:/# exit

10、调试过程尝试的命令:
$ gedit dockerd
#!/bin/bash
/tomcat/apache-tomcat-7.0.85/bin/startup.sh
/bin/bash
exit 0

$ docker run -it --name mytomcat -d -p 81:8080 mytomcat:v1 /etc/rc.d/init.d/dockerd
cat /tomcat/apache-tomcat-7.0.85/conf/server.xml
docker container start mytomcat        #启动项目

原文地址:https://www.cnblogs.com/shoubituling/p/8998227.html

时间: 2024-08-01 19:49:32

2018-05-04~2018-05-06 在docker上生成运行了tomcat的容器的相关文章

5 weekend01、02、03、04、05、06、07的分布式集群的HA测试 + hdfs--动态增加节点和副本数量管理 + HA的java api访问要点

weekend01.02.03.04.05.06.07的分布式集群的HA测试 1)  weekend01.02的hdfs的HA测试 2)  weekend03.04的yarn的HA测试 1)  weekend01.02的hdfs的HA测试 首先,分布式集群都是正常的,且工作的 然后呢, 以上是,weekend01(active).weekend02(standby) 当weekend01给kill, 变成weekend01(standby).weekend02(active) 模拟weekend

2018.02.04(补作业系列)

2018.02.04 补作业系列 1.合并石子 思路: 核心代码: 状态转移方程&解析:s[i]表示前i堆石子的数量总和,f[i][j]表示把第i堆石子到第j堆石子合并成一堆的最优值. 1 for ( i = n-1 ; i >= 1 ; i-- ){ 2 for ( j = i+1 ; j <= n ; j++ ){ 3 for ( k = i ; k <= j-1 ; k++ ){ 4 f[i][j] = min ( f[i][j] , f[i][k] + f[k+1][j]

新手C#string类常用函数的学习2018.08.04

ToLower()用于将字符串变为小写,注意字符串的不可变特性,需要重新赋值给另一个字符串变量. s = s.ToLower();//字符串具有不可变性,转换后需要重新赋值,不可仅有s.ToLower(); 这可以使用户的输入不区分大小写,例如验证码. ToUpper()用于将字符串全部变为大写,与上面类似. Trim()可以用于去掉两边的空格. string s1 = " a b c "; s1 = s1.Trim();//用于去除字符串两边的空格 Console.WriteLine

2018年7月新品尚家docker核心技术教程--大牛编程吧-程序员编程入门圣地

2018年7月新品尚家docker核心技术教程--大牛编程吧-程序员编程入门圣地2018年7月新品尚家docker核心技术教程--大牛编程吧-程序员编程入门圣地 02_Docker_为什么会出现.avi03_Docker_理念.avi04_Docker_是什么.avi05_Docker_能干什么.avi06_Docker_三要素.avi07_Docker_CentOS6安装Docker.avi08_Docker_CentOS7安装Docker简介(补充知识请看34集).avi09_Docker_

ubuntu16.04 ,安装最新版本docker

环境:ubuntu16.04 ,安装最新版本docker 1.  添加GPG key: sudo apt-key adv--keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys58118E89F3A912897C070ADBF76221572C52609D 2. 添加源 新建文件:/etc/apt/sources.list.d/docker.list, 在里面添加内容: debhttps://apt.dockerproject.or

ubuntu16.04下使用navicat连接docker mysql5.7.20

摘要: 本文将介绍如何使用docker创建mysql容器,并使用navicat连接该mysql服务,最后提供一个navicat中文乱码问题的解决方案. 一.docker下创建mysql容器 1.下载mysql最新版本镜像: $ docker pull mysql 2.启动mysql容器 创建mysql配置文件my.cnf,全路径为/data/mysql/conf/my.cnf,内容如下: [mysqld] pid-file = /var/run/mysqld/mysqld.pid socket

docker设置并运行部分命令及原文

1.设置开机启动 If you want Docker to start at boot, you should also: $ sudo systemctl enable docker 2. 启动,停止,重启 $ sudo systemctl start docker $ sudo systemctl stop docker $ sudo systemctl restart docker 3.开启本地和远程 修改/etc/sysconfig/docker文件,替换 -H fd://为 -H u

[小北De编程手记] : Lesson 04 - Selenium For C# 之 API 上

这一部分,我准备向大家介绍Selenium WebDriver的常用API,学习这部分内容需要大家最好有一些简单的HTML相关知识,本文主要涉及到以下内容: Selenium API:元素检查 Selenium API:事件处理 Selenium API:其他操作 Selenium API:框架扩展 回顾一下我之前讲过的一个概念:所谓自动化测试,可以简单的归结为是一个从被测试程序中识别或是定位元素以及执行操作和验证元素的过程.从框架设计的角度来讲,一个自动化测试框架的驱动程序应该向使用者提供“元

Docker之数据卷和数据卷容器

数据卷是一个可供容器使用的特殊目录,可以在容器之间共享和重用,对数据卷的修改会马上生效,卷会一直存在直到没有容器使用,数据卷的使用类似于mount 数据卷容器就是一个普通的容器,可专门提供数据卷供其他容器挂载使用,可以在容器之间共享一些持续更新的数据 1:创建数据卷 利用镜像centos,创建一个名为tomcat的容器,并在后台以守护进程方式工作,且将本地的/b2b/目录挂在在新建立的tomcat容器的/test目录下 [email protected]:/home/zxl# docker ru