Docker教程(七)——Docker安装各种软件

一、mysql

1、拉取需要的mysql版本到docker
docker pull mysql:5.6
2、安装完成后以交互式模式创建容器(运行镜像)

(1)、运行MySQL命令

docker run -p 3306:3306 --name mysql -v /Users/macay/mydocker/mysql/conf:/etc/mysql/conf.d -v /Users/macay/mydocker/mysql/logs:/logs -v /Users/macay/mydocker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6

参数释义如下:

1. -p 3307:3306   --将主机的端口3307映射到docker容器的3306端口;
2. --name mysql  --运行服务(容器)名字;
3. -v /Users/macay/mydocker/mysql/conf:/etc/mysql/conf.d  --将主机/Users/macay/mydocker/mysql目录下的conf挂载到容器的/etc/mysql/conf.d
4. -v /Users/macay/mydocker/mysql/logs:/logs --将主机/Users/macay/mydocker/mysql目录下的logs目录挂载到容器的/logs;
5. -v /Users/macay/mydocker/mysql/data:/var/lib/mysql --将主机/Users/macay/mydocker/mysql目录下的data目录挂载到容器的/var/lib/mysql
6. -e MYSQL_ROOT_PASSWORD=123456 --初始化root用户 密码;
7. -d mysql:5.6 --后台程序运行mysql5.6

(2)、进入MySQL容器

docker exec -it b961c6b964bd /bin/bash
mysql -uroot -p   //输入启动时初始化的密码 123456

(3)、查看mysql默认数据库

show databases;

在这里插入图片描述

3、桌面使用数据库工具连接docker上的mysql数据库

在这里插入图片描述

4、docker 安装MySQL中文乱码问题

https://blog.csdn.net/yu0_zhang0/article/details/84568657

二、redis

1、拉取需要的redis版本到docker
docker pull redis:3.2
2、使用redis:3.2镜像为模板创建容器(运行镜像)

docker run -p 6380:6379 -v /Users/macay/mydocker/redis/data:/data -v /Users/macay/mydocker/redis/redis.conf:/usr/local/etc/redis/redis.conf -d redis:3.2 redis-server /usr/local/etc/redis/redis.conf --appendonly yes

命令详解:

1.-p:6380:6379  --将主机的6380端口映射到docker容器的6379端口;
2.-v /Users/macay/mydocker/redis/data:/data  --将主机Users/macay/mydocker/redis/data目录下的data挂载到容器的/data
3.-v /Users/macay/mydocker/redis/redis.conf:/usr/local/etc/redis/redis.conf --将主机//Users/macay/mydocker/redis/redis.conf目录下的redis.conf挂载到容器的/usr/local/etc/redis目录下的redis.conf,注意这里的redis.conf是一个目录,不是文件
4.-d redis:3.2 --后台程序运行redis
5.redis-server /usr/local/etc/redis/redis.conf --启动redis服务
6.--appendonly yes --开启aof持久化(redis默认只开启rdb)
3、在主机/Users/macay/mydocker/redis/redis.conf目录下创建redis.conf文件,写入Redis官方配置文件内容。

在这里插入图片描述

4、测试redis-cli连接是否成功
docker exec -it 容器ID redis-cli

在这里插入图片描述

5、测试aof持久化文件生成(aof默认持久化文件为appendonly.aof)

在这里插入图片描述
在这里插入图片描述
可以看到,在我们宿主机目录下的持久化文件appendonly.aof已经有数据存入。

6、在docker中使用redis
在这里插入图片描述
我们点击cli,然后执行redis-cli命令即可用命令操作redis:

在这里插入图片描述

三、tomcat

1、准备压缩包和镜像文件

​准备tomcat 和 jdk的压缩包到当前目录,编写好README。
注意:使用tomcat等压缩包时尽量使用稳定的版本,下载最新的版本一些目录啥的会有变化,容易踩坑。 还有一点是,src 目录下下载的是源码,应该是在bin目录里面下载。

在这里插入图片描述
在这里插入图片描述

2、编写Dockerfile(官方的命名方式,build时默认帮你去寻找,不需要加-f指定)
FROM centos
MAINTAINER macay<120726@qq.com>

#把宿主机当前上下文的README拷贝到容器/usr/local/路径下
COPY README /usr/local/README
#复制压缩包到容器中,自动解压
ADD jdk-8u161-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-9.0.8.tar.gz /usr/local/

#安装vim编辑器
RUN yum -y install vim

#设置环境变量
ENV MYPATH /usr/local
#设置工作访问时候的WORKDIR路径,登录落脚点
WORKDIR $MYPATH

#设置环境变量
ENV JAVA_HOME /usr/local/jdk1.8.0_161
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.8
#设置环境变量 分隔符是:
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib

#设置暴露的端口
EXPOSE 8080

# 设置默认命令
CMD /usr/local/apache-tomcat-9.0.8/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.8/logs/catalina.out

注意:

Dockerfile以#开头的行视为注释,如果在有效指令后面使用#号注释,会将其作为参数处理,导致报错。
在这里插入图片描述
解决:将注释去掉即可,或者把注释单独放一行

3、构建镜像
docker build -t macay/mytomcat:1.2 .

因为Dockerfile命名使用默认命名 因此不用使用-f 指定文件.
在这里插入图片描述

4、run镜像
docker run -d -p 8080:8080 --name tomcat01 -v /Users/macay/mydocker/tomcat/test:/usr/local/apache-tomcat-9.0.8/webapps/test -v /Users/macay/mydocker/tomcat/tomcatlogs/:/usr/local/apache-tomcat-9.0.8/logs macay/mytomcat:1.2
5、验证容器启动

在这里插入图片描述

6、测试web服务test发布

由于做了卷挂载,我们直接在本地编写项目就可以发布了。

在test目录下面创建文件及文件夹:在这里插入图片描述
a.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
  </head>
  <body>
    -----------welcome------------
    <%="i am in docker tomcat self "%>
    <br>
    <br>
    <% System.out.println("=============docker tomcat self");%>
  </body>
</html>

重启服务:

docker restart ac2d656e73a4

可以看到,我们测试的项目已经能正常访问了:
在这里插入图片描述
我们修改一下宿主机test下的a.jsp文件:
在这里插入图片描述
刷新页面,可以看到页面也会随之变化:
在这里插入图片描述
同样的,我们也可以在宿主机目录下查看tomcat的运行日志:
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值