tomcat

上一节讲到了dockerfile的基础,这一次咱们来作一个小的练习

首先要了解tomcat安装的整个过程

首先搭建 jdk环境:

下载jdk包,解压以后添加环境变量

而后搭建tomcat:

下载tomcat包,解压,修改配置文件到一个工做目录

而后给工做目录加入一些东西,访问。java

From centos

add ./jdk-8u191-linux-x64.tar.gz /usr/local

add ./apache-tomcat-8.5.35.tar.gz /usr/local

ENV JAVA_HOME /usr/local/jdk

ENV CLASSPATH $JAVA_HOME/lib/

ENV PATH $PATH:$JAVA_HOME/bin

RUN mkdir -p /var/www/www.fz.com

VOLUME /var/www/www.fz.com

RUN cd /usr/local/ && mv apache-tomcat-8.5.35 tomcat && mv jdk1.8.0_191 jdk

copy ./server.xml /usr/local/tomcat/conf/

copy ./mysql-connector-java-5.1.7-bin.jar /usr/local/tomcat/lib/

workdir /usr/local/tomcat

CMD bash bin/startup.sh && tail -f logs/catalina.out

这是整个dockerfile的文件。我来一次解释一下

From centos:

这个没什么好说的就是一个基础的centos的源镜像

add:

两个源码包 一个是jdk的一个是tomcat的包

ENV:这里会设置环境变量,就是三个jdk的环境变量

RUN:执行命令,建立一个tomcat的工做目录,

VOLUME:和上面一块儿,建立目录以后把他映射到宿主机,以即可以在外部把具体的页面代码放入。

RUN: 运行命令把tomcat放到制定目录并解压

copy:第一个是把tomcat的配置文件的副本拷贝进去,第二个是拷贝jdbc的包,以便之后链接数据库时用。

workdir:后面的命令都是在/usr/local/tomcat下运行

最后一个CMD很关键。

前面讲过,docker的镜像运行以后在执行完命令就会自动关闭,必需要给他一个可以挂在后台运行的命令,好比说你在run后面会加上 /bin/bash等等让他保持活跃的状态。否则它就会自动关闭。

这里若是只有打开tomcat而没有后面的加载日志,那么就会在打开以后容器立刻又关闭了。因此docker ps就看不见 须要用 ps -a看全部的容器,会发现容器是关闭的。 就须要用刷新日志的方式让tomcat在后台与进行。保持容器的开启状态。

前面的须要的文件放在和dockerfile一个目录下ok了。

而后编译运行

而后运行

中间一部分省略

就能够看见相似与平时的开启tomcat的日志

若是不想要在前台看日志,能够-d挂入后台。如上图所示mysql

mysql源码安装

mysql源码安装的大体过程

1.下载源码包,下载一些依赖包例如gcc等

2.编译安装

3.建立用户和组并赋予权限,而后数据库初始化

4.设置数据库root密码linux

from centos

ADD ./mysql-5.6.35.tar.gz /usr/local/

RUN yum install gcc gcc-c++ ncurses-devel perl cmake make autoconf -y

RUN cd /usr/local/mysql-5.6.35 && cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

&& make && make install

RUN groupadd mysql && useradd -r -g mysql mysql && \

chown -R mysql:mysql /usr/local/mysql

ENV PATH /usr/local/mysql/bin:/usr/local/mysql/lib:$PATH

workdir /usr/local/mysql

RUN scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql \

--datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/mysql.pid

RUN support-files/mysql.server start && mysqladmin -u root password 'redhat'

COPY ./test.sql /root/

RUN support-files/mysql.server start && mysql -uroot -predhat < /root/test.sql

CMD mysqld --user=mysql

这是个人dockerfile文件

依次解释:

from:镜像源

add:把源码包copy进去并解压

run: 第一个是下载一些依赖包,第二个是编译安装。第三个是用户和权限。

env:环境变量

workdir :工做目录设在mysql目录下

run:数据库初始化,

第二个是开启服务并修改root密码

这里我踩了一个坑,修改密码是要在开启服务的状态下的,一开始我没有开服务,会出错。第二次我知道了要开服务,而后我是先在前面开服务,在后面在加一个run修改密码,也会出错,为何呢?

由于dockerfile每一行命令都是把镜像生成一个容器,而后在容器内执行命令,子啊构建成新的镜像,这样一来,上一个镜像是开启服务,像开启服务把他单独列在一行是没有效果的,由于生成容器开启服务再生成镜像还会同样的镜像,下一个执行修改root密码命令时候已是一个新的镜像了因此服务是没打开的。

copy:而后就是拷贝我本身写的一个mysql的脚本进入docker

run:这个是开启服务而且执行脚本,然数据库生成表插入数据

cmd:这个是前台开启数据库服务。

像前面一个编译并开启就ok了

这里数据库的编译是最基础的,没有不少参数,有需求本身加,而后这里的编译须要的时间可能会有点久。c++

dockerfile源码安装mysql_docker容器详解五: dockerfile实现tomcat环境以及源码安装mysql...相关推荐

  1. python离线包安装_python 通过pip freeze、dowload打离线包及自动安装的过程详解(适用于保密的离线环境...

    python的pip是其包管理工具,相当方便好用.本文只介绍pip 如何通过其freeze命令打离线包,及其离线包的安装脚本.这个知识点,特别适用于不适合连通互联网,设备需要物理隔绝,保密要求严格的客 ...

  2. node.js卸载、安装、配置详解

    node.js卸载.安装.配置详解 一. node.js卸载 二.下载安装 2.1 下载 2.2 安装 2.2.1 选择msi安装 2.2.2 选择zip安装 三.配置 3.1 环境变量配置 3.2 ...

  3. MySQL Installer 8.0.21安装教程图文详解 转载

    MySQL Installer 8.0.21安装教程图文详解 原地址 1. 缘由 刚好需要在新系统上重新安装MySQL,便写了一份的下载安装教程,供查阅,以防日后细节有所遗忘. 2. 版本说明 MyS ...

  4. mysql installer安装_MySQL Installer 8.0.21安装教程图文详解

    1. 缘由 刚好需要在新系统上重新安装MySQL,便写了一份的下载安装教程,供查阅,以防日后细节有所遗忘. 2. 版本说明 MySQL Installer 8.0.21 3. 下载安装包 方式一:官网 ...

  5. mysql data文件夹恢复_【专注】Zabbix源码安装教程—步骤详解(2)安装并配置mysql...

    四.安装并配置mysql(1) 解压mysql-5.7.26.tar.gz与boost_1_59_0.tar.gz #tar -xvf mysql-5.7.26.tar.gz #tar -xvf bo ...

  6. php+mysql案例含源码_【专注】Zabbix源码安装教程—步骤详解(1)安装前准备

    一.实验环境准备 Rhel 7.6 x86_64(server) 192.168.163.72 Rhel 6.5 x86_64(agent) 192.168.163.61 均已配置操作安装光盘为YUM ...

  7. 详解linux下auto工具制作Makefile源码包(制作篇)

    2019独角兽企业重金招聘Python工程师标准>>> 详解linux下auto工具制作Makefile源码包(制作篇) 水木杨 一.     概述 为了更好的制作configure ...

  8. Xposed源码剖析——app_process作用详解

    Xposed源码剖析--app_process作用详解 首先吐槽一下CSDN的改版吧,发表这篇文章之前其实我已经将此篇文章写过了两三次了.就是发表不成功.而且CSDN将我的文章草稿也一带>删除掉 ...

  9. java中batch基础_详解Spring batch 入门学习教程(附源码)

    详解Spring batch 入门学习教程(附源码) 发布时间:2020-09-08 00:28:40 来源:脚本之家 阅读:99 作者:achuo Spring batch 是一个开源的批处理框架. ...

最新文章

  1. DXF 最简单的一个文件生成两个直线一条直线放入BLOCKS中通过INSERT插入 (2)
  2. Seek the Name, Seek the Fame POJ - 2752 (理解KMP函数的失配)既是S的前缀又是S的后缀的子串
  3. IDM 扩展安装版本冲突解决(Chrome尝试对扩展程序进行降级处理)
  4. 六类网线钳能压五类水晶头吗_六类网线可以用五类水晶头不?
  5. php b2c是什么意思,bto c模式什么意思?
  6. 目前常用计算机配置,电脑常见主要配置、参数
  7. 数据结构考研复习(详细指导)(持续更新中)
  8. 大数据给交通行业带来的五大变革 | 交通数据的深度应用
  9. 《陰陽師·付喪神卷·瓜仙人》原作:梦枕貘
  10. ## Python笔记
  11. 初识C语言(三)--最终章,万字解析,趣味讲解完C语言的最后知识点
  12. 微信视频号自助下单刷平台
  13. c语言输出函数语句,c语言输出语句及格式输出函数介绍
  14. 错排——没有不动点排列 通俗易懂!!!
  15. GraphQL(win10环境 + nodejs)试用
  16. FPGA练习:与门电路的实现
  17. 三大运营商新战场:与BAT争夺大数据金矿
  18. allwinner android 更换开机logo
  19. (附源码)计算机毕业设计SSM智能仓储进出货管理系统
  20. 12306余票查询(五)——网页模板制作

热门文章

  1. str045漏洞提权linux,Linux运维知识之CVE-2016-5195 Dirtycow: Linux内核提权漏洞
  2. win10 子系统 ubuntu 16.04 安装 docker
  3. POJ 3090 Visible Lattice Points 【欧拉函数】
  4. 西门子博途编程 - 另类状态机
  5. 清除掉AD的相关属性!
  6. Google推出“Google实验室” Ad Innovations
  7. java 简单数据类型_java基本数据类型
  8. 约瑟夫环 java_约瑟夫环Java实现
  9. 华为android怎样隐藏软件,华为怎么打开隐藏应用功能
  10. Git的工作流程简介