dockerfile源码安装mysql_docker容器详解五: dockerfile实现tomcat环境以及源码安装mysql...
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...相关推荐
- python离线包安装_python 通过pip freeze、dowload打离线包及自动安装的过程详解(适用于保密的离线环境...
python的pip是其包管理工具,相当方便好用.本文只介绍pip 如何通过其freeze命令打离线包,及其离线包的安装脚本.这个知识点,特别适用于不适合连通互联网,设备需要物理隔绝,保密要求严格的客 ...
- node.js卸载、安装、配置详解
node.js卸载.安装.配置详解 一. node.js卸载 二.下载安装 2.1 下载 2.2 安装 2.2.1 选择msi安装 2.2.2 选择zip安装 三.配置 3.1 环境变量配置 3.2 ...
- MySQL Installer 8.0.21安装教程图文详解 转载
MySQL Installer 8.0.21安装教程图文详解 原地址 1. 缘由 刚好需要在新系统上重新安装MySQL,便写了一份的下载安装教程,供查阅,以防日后细节有所遗忘. 2. 版本说明 MyS ...
- mysql installer安装_MySQL Installer 8.0.21安装教程图文详解
1. 缘由 刚好需要在新系统上重新安装MySQL,便写了一份的下载安装教程,供查阅,以防日后细节有所遗忘. 2. 版本说明 MySQL Installer 8.0.21 3. 下载安装包 方式一:官网 ...
- 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 ...
- 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 ...
- 详解linux下auto工具制作Makefile源码包(制作篇)
2019独角兽企业重金招聘Python工程师标准>>> 详解linux下auto工具制作Makefile源码包(制作篇) 水木杨 一. 概述 为了更好的制作configure ...
- Xposed源码剖析——app_process作用详解
Xposed源码剖析--app_process作用详解 首先吐槽一下CSDN的改版吧,发表这篇文章之前其实我已经将此篇文章写过了两三次了.就是发表不成功.而且CSDN将我的文章草稿也一带>删除掉 ...
- java中batch基础_详解Spring batch 入门学习教程(附源码)
详解Spring batch 入门学习教程(附源码) 发布时间:2020-09-08 00:28:40 来源:脚本之家 阅读:99 作者:achuo Spring batch 是一个开源的批处理框架. ...
最新文章
- DXF 最简单的一个文件生成两个直线一条直线放入BLOCKS中通过INSERT插入 (2)
- Seek the Name, Seek the Fame POJ - 2752 (理解KMP函数的失配)既是S的前缀又是S的后缀的子串
- IDM 扩展安装版本冲突解决(Chrome尝试对扩展程序进行降级处理)
- 六类网线钳能压五类水晶头吗_六类网线可以用五类水晶头不?
- php b2c是什么意思,bto c模式什么意思?
- 目前常用计算机配置,电脑常见主要配置、参数
- 数据结构考研复习(详细指导)(持续更新中)
- 大数据给交通行业带来的五大变革 | 交通数据的深度应用
- 《陰陽師·付喪神卷·瓜仙人》原作:梦枕貘
- ## Python笔记
- 初识C语言(三)--最终章,万字解析,趣味讲解完C语言的最后知识点
- 微信视频号自助下单刷平台
- c语言输出函数语句,c语言输出语句及格式输出函数介绍
- 错排——没有不动点排列 通俗易懂!!!
- GraphQL(win10环境 + nodejs)试用
- FPGA练习:与门电路的实现
- 三大运营商新战场:与BAT争夺大数据金矿
- allwinner android 更换开机logo
- (附源码)计算机毕业设计SSM智能仓储进出货管理系统
- 12306余票查询(五)——网页模板制作
热门文章
- str045漏洞提权linux,Linux运维知识之CVE-2016-5195 Dirtycow: Linux内核提权漏洞
- win10 子系统 ubuntu 16.04 安装 docker
- POJ 3090 Visible Lattice Points 【欧拉函数】
- 西门子博途编程 - 另类状态机
- 清除掉AD的相关属性!
- Google推出“Google实验室” Ad Innovations
- java 简单数据类型_java基本数据类型
- 约瑟夫环 java_约瑟夫环Java实现
- 华为android怎样隐藏软件,华为怎么打开隐藏应用功能
- Git的工作流程简介