docker file搭建jdk、mariadb、redis、tomcat镜像(记录个人学习搭建过程)

最近花了几天时间学习了docker,自己亲手搭建这个镜像,来练练手。docker的基础知识我就不说了,直接上手。

创建Dockerfile文件

在自己的构建目录下创建Dockerfile文件 vim Dockerfile

Dockerfile里的基础内容如下

# 基础镜像
FROM centos:7
# 作者信息
MAINTAINER hamburger <1304612139@qq.com>
# 工作目录
WORKDIR /usr/local

构建JDK1.8镜像

  1. 上传jdk压缩包到Dockerfile同级目录下
  2. 编写Dockerfile文件 vim Dockerfile
# 基础镜像
FROM centos:7
# 作者信息
MAINTAINER hamburger <1304612139@qq.com>
# 工作目录
WORKDIR /usr/local

# 安装JDK1.8
#将jdk压缩包复制并解压到容器中/usr/local/java
ADD jdk-8u311-linux-x64.tar.gz /usr/local
#配置java环境变量(这里路径一定要写对,不然环境变量配置会失败)
ENV JAVA_HOME /usr/local/jdk1.8.0_311
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH

#安装mariadb数据库
RUN yum -y install mariadb-server
#设置环境变量,便于管理
ENV MARIADB_USER root
ENV MARIADB_PASS liu78963
#让容器支持中文
ENV LC_ALL en_US.UTF-8
  1. 构建镜像 docker build -t yard_management:v1 .

-t : 表示可以自定义tag

在这里插入图片描述

  1. 运行刚刚构建的镜像docker run -d yard_management:v1

-d: 表示后台运行

  1. 进入容器内部,查看jdk是否安装成功 docker exec -it b2f145ddd4db bash

docker exec -it 容器id bash

  1. 检查jdk是否安装成功 java -version
    检查jdk是否安装成功

构建Mariadb数据库镜像

  1. 修改Dockerfile里的内容
# 基础镜像
FROM centos:7
# 作者信息
MAINTAINER hamburger <1304612139@qq.com>
# 工作目录
WORKDIR /usr/local

# 安装JDK1.8
#将jdk压缩包复制并解压到容器中/usr/local/java
ADD jdk-8u311-linux-x64.tar.gz /usr/local
#配置java环境变量(这里路径一定要写对,不然环境变量配置会失败)
ENV JAVA_HOME /usr/local/jdk1.8.0_311
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH

#安装mariadb数据库
RUN yum -y install mariadb-server
#设置环境变量,便于管理
ENV MARIADB_USER root
ENV MARIADB_PASS liu78963
#让容器支持中文
ENV LC_ALL en_US.UTF-8
#初始化数据库
ADD db_init.sh /root/db_init.sh
RUN chmod 775 /root/db_init.sh
RUN /root/db_init.sh
#开放端口
EXPOSE 3306
#添加启动文件
ADD run.sh /root/run.sh
RUN chmod 775 /root/run.sh
#设置默认启动命令
CMD ["/root/run.sh"]

其中初始化脚本为 db_init.sh

#!/bin/bash

mysql_install_db --user=mysql
sleep 3
mysqld_safe &
sleep 3
#mysqladmin -u "$MARIADB_USER" password "$MARIADB_PASS"
mysql -e "use mysql; grant all privileges on *.* to '$MARIADB_USER'@'%' identified by '$MARIADB_PASS' with grant option;"
h=$(hostname)
mysql -e "use mysql; update user set password=password('$MARIADB_PASS') where user='$MARIADB_USER' and host='$h';"
mysql -e "flush privileges;"

运行脚本run.sh

#!/bin/bash
mysqld_safe
  1. 构建镜像 docker build -t yard_management:v2 .

yard_management:v1 为自己的镜像名称+tag

docker images可以看到镜像已经构建完成
构建完成
运行镜像

docker run -d -p 13306:3306 yard_management:v2 /root/run.sh

-d 后台运行, -p 映射容器内部和外部的映射端口
/root/run.sh 是启动之后执行的命令,执行运行Mariadb数据库的脚本

测试是否安装成功
在这里插入图片描述

构建Redis镜像

  1. 编写Dockerfile文件 vim Dockerfile
FROM centos:7
# 作者信息
MAINTAINER hamburger <1304612139@qq.com>
# 工作目录
WORKDIR /usr/local

# 安装JDK1.8
#将jdk压缩包复制并解压到容器中/usr/local/java
ADD jdk-8u311-linux-x64.tar.gz /usr/local
#配置java环境变量(这里路径一定要写对,不然环境变量配置会失败)
ENV JAVA_HOME /usr/local/jdk1.8.0_311
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH

#安装mariadb数据库
RUN yum -y install mariadb-server
#设置环境变量,便于管理
ENV MARIADB_USER root
ENV MARIADB_PASS liu78963
#让容器支持中文
ENV LC_ALL en_US.UTF-8
#初始化数据库
ADD db_init.sh /root/db_init.sh
RUN chmod 775 /root/db_init.sh
RUN /root/db_init.sh
#开放端口
EXPOSE 3306
#添加启动文件
ADD run.sh /root/run.sh
RUN chmod 775 /root/run.sh
#设置默认启动命令
CMD ["/root/run.sh"]

# 安装redis
RUN yum -y update && yum -y install epel-release && yum -y install redis
EXPOSE 6379
#修改绑定IP地址
RUN sed -i -e 's@bind 127.0.0.1@bind 0.0.0.0@g' /etc/redis.conf
##关闭保护模式
RUN sed -i -e 's@protected-mode yes@protected-mode no@g' /etc/redis.conf
#设置密码
RUN echo "requirepass 123456" >> /etc/redis.conf
#启动
ENTRYPOINT [ "/usr/bin/redis-server","/etc/redis.conf"]
  1. 构建镜像 docker build -t yard_management:v3 .
  2. 启动容器 docker run -d -p 13306:3306 -p 9000:6379 yard_management:v3
  3. 测试
    redis测试

构建tomcat镜像

  1. 上传tomcat压缩包和web.war到Dockerfile同级目录下 (我这里是yardManagement.war)
  2. 编写Dockerfile文件 vim Dockerfile
# 基础镜像
FROM centos:7
# 作者信息
MAINTAINER hamburger <1304612139@qq.com>
# 工作目录
WORKDIR /usr/local

# 安装JDK1.8
#将jdk压缩包复制并解压到容器中/usr/local/java
ADD jdk-8u311-linux-x64.tar.gz /usr/local
#配置java环境变量(这里路径一定要写对,不然环境变量配置会失败)
ENV JAVA_HOME /usr/local/jdk1.8.0_311
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH

#安装mariadb数据库
RUN yum -y install mariadb-server
#设置环境变量,便于管理
ENV MARIADB_USER root
ENV MARIADB_PASS liu78963
#让容器支持中文
ENV LC_ALL en_US.UTF-8
#初始化数据库
ADD db_init.sh /root/db_init.sh
RUN chmod 775 /root/db_init.sh
RUN /root/db_init.sh
#开放端口
EXPOSE 3306
#添加启动文件
ADD run.sh /root/run.sh
RUN chmod 775 /root/run.sh
#设置默认启动命令
CMD ["/root/run.sh"]

# 安装redis
RUN yum -y update && yum -y install epel-release && yum -y install redis
EXPOSE 6379
#修改绑定IP地址
RUN sed -i -e 's@bind 127.0.0.1@bind 0.0.0.0@g' /etc/redis.conf
##关闭保护模式
RUN sed -i -e 's@protected-mode yes@protected-mode no@g' /etc/redis.conf
#设置密码
RUN echo "requirepass 123456" >> /etc/redis.conf
#启动
ENTRYPOINT [ "/usr/bin/redis-server","/etc/redis.conf"]

# 安装tomcat
ADD apache-tomcat-8.5.73.tar.gz  ./
COPY
# 开放8080端口
EXPOSE 8080
# CMD 在【docker run 镜像】 的时候,会执行CMD中的命令
CMD /usr/local/apache-tomcat-8.5.73/bin/startup.sh
  1. 构建镜像 docker build -t yard_management:v4 .
  2. 创建 数据卷挂载时,所指定的本地文件
docker run -d -p 13306:3306 -p 8090:8080 -v /usr/local/docker_work/yardManagement/tomcat_webapps/:/usr/local/apache-tomcat-8.5.73/webapps -v /usr/local/docker_work/yardManagement/tomcat_logs/:/usr/local/apache-tomcat-8.5.73/logs yard_management:v4
  1. 运行容器 docker run -d -p 8090:8080 yard_management:v4
  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值