Docker容器 — MySQL和Tomcat 镜像创建实例

实例一、Tomcat 镜像创建

提前准备好Tomcat、JDK软件包

(1)创建tomcat文件夹
mkdir tomcat
cd /tomcat
(2)编写Dockerfile文件
vim Dockerfile
FROM centos:7
#在centos:7的镜像基础下创建
MAINTAINER xpp
#作者信息
ADD jdk-8u91-linux-x64.tar.gz /usr/local
ADD apache-tomcat-9.0.16.tar.gz /usr/local
#软件包解压切移动
WORKDIR /usr/local
#进入/usr/local目录
RUN mv apache-tomcat-9.0.16 tomcat
RUN mv jdk1.8.0_91 java
#给解压后的文件重命名
ENV JAVA_HOME /usr/local/java
ENV CLASS_PATH $JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
ENV PATH $JAVA_HOME/bin:$PATH
#添加修改JAVA的变量
EXPOSE 8080
#暴露端口
CMD ["/usr/local/tomcat/bin/catalina.sh","run"]
#执行CMD后面命令,开启Tomcat服务
(3)创建镜像
'创建镜像'
docker build -t centos7:tomcat .
(4)开启容器
'开启容器 -p:指定端口'
docker run -d -p 8080:8080 centos7:tomcat 

'查看容器是否启动'
docker ps -a
(5)验证
如果确保服务开启成功,在网页上输入宿主IP:8080可以查看到服务

实例二、MySQL 镜像创建

FROM centos:7
#在centos7镜像基础下创建
MAINTAINER xpp
#作者信息
ADD mysql-boost-5.7.20.tar.gz /usr/local
#解压并移动软件包
RUN useradd -M -s /sbin/nologin  mysql
#创建mysql用户
RUN yum -y install \
ncurses \
ncurses-devel \
bison \
make \
cmake \
gcc \
gcc-c++
#安装mysql依赖环境
WORKDIR /usr/local/mysql-5.7.20/
#进入/usr/local/mysql-5.7.20/目录
RUN cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8  \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=boost \
-DWITH_SYSTEMD=1 && make && make install
#编译安装mysql
WORKDIR /root/mysql
#进入/root/mysql/目录
ADD my.cnf /etc
#把文件my.cnf添加到容器内/etc目录下
RUN chmod -R mysql:mysql /usr/local/mysql/
RUN chown mysql:mysql /etc/my.cnf
#创建属组及宿主
ENV PATH $PATH:/usr/local/mysql/bin:/usr/local/mysql/lib
#添加环境变量
WORKDIR /usr/local/bin/
#进入/usr/local/bin/目录
RUN ./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data
#初始化数据库
RUN cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
#执行复制文件命令
EXPOSE 3306
#暴露端口
RUN echo -e "#!/bin/bash \nsystemctl enable mysqld" >/run.sh
#创建脚本文件,用于配置开机自启动mysqld服务
RUN chmod 755 /run.sh
#给脚本文件赋予权限
RUN sh /run.sh
#运行脚本文件
CMD ["init"]
#重启                             
(3)创建镜像
'创建镜像'
docker build -t centos7:mysql .
(4)开启容器
'宿主机后台不降权运行,暴露随机端口'
docker run --privileged -d -P centos7:mysql
#如果不这么开启,root用户进去会降权

'查看容器是否启动,确认端口号'
docker ps -a
(5)验证
'进入mysql容器'
docker exec -it 端口号 bash

'登入数据库'
mysql -uroot -p

'授权可允许root用户在所有终端上对所有库的所有表拥有所有权限'
grant all privileges on *.* to 'root'@'%' identified by '123123';

'授权可允许root用户在本地上对所有库的所有表拥有所有权限'
grant all privileges on *.* to 'root'@'localhost' identified by '123123';

另起终端
'安装mariadb'
yum -y install mariadb

'远程连接mysql容器'
mysql -h 宿主机IP地址 -P 容器端口号 -p123123
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值