• Mycat 镜像-创建 Docker 镜像


    将 Mycat-server 创建到镜像,使其能够进行容器化部署,我们需要创建 Dockerfile 并在文件中安装其依赖项,使用 centos 做为 base 镜像,并安装 jdk 依赖即可,因此创建 mycat 的步骤是比较简单的,下面按照创建镜像步骤来进行说明:

    • 创建镜像构建目录

      创建目录 mycat-server-build,并将 mycat-server 和 其依赖的 jdk 文件复制到该目录内,我命名 mycat-server 目录名为 mycat1.65,jdk 的目录名称为 jdk1.8.0_162,目录结构如下:

      mycat-server-build/

      ├──mycat1.65

      ├──jdk1.8.0_162

    • 创建 Dockerfile 文件

      在目录 mycat-server-build 创建 Dockerfile 文件,文件内容如下:

      # 设置镜像的 base 镜像,这里我们使用 centos 系统镜像

      FROM centos

      # 复制依赖的 jdk 文件,我这里是已经解压缩,如果是 tar 格式文件,使用 ADD

      COPY jdk1.8.0_162 /opt/jdk1.8.0_162

      # 复制 mycat 文件,我这里是已经解压缩,如果是 tar 或 gz 格式文件,使用 ADD

      COPY mycat1.65 /opt/mycat1.65

      # 设置环境变量

      ENV JAVA_HOME /opt/jdk1.8.0_162

      ENV MYCAT_HOME /opt/mycat1.65

      ENV PATH /usr/bin:$JAVA_HOME/bin:$MYCAT_HOME/bin:PATH

      # 执行最终命令,启动 mycat

      CMD mycat console

      创建 Dockerfile 文件后, mycat-server-build 目录的结构如下:

      mycat-server-build/

      ├──Dockerfile

      ├──mycat1.65

      ├──jdk1.8.0_162

         

    • 执行镜像构建

      进入 mycat-server-build 目录,输入镜像构建命令如下:

      [root@docker mycat-server-build]# docker build -t mycat-server .

      Sending build context to Docker daemon 407MB

      Step 1/7 : FROM centos

      ---> e934aafc2206

      Step 2/7 : COPY jdk1.8.0_162 /opt/jdk1.8.0_162

      ---> Using cache

      ---> 79987e6045df

      Step 3/7 : COPY mycat1.65 /opt/mycat1.65

      ---> Using cache

      ---> c1fb57b124ac

      Step 4/7 : ENV JAVA_HOME /opt/jdk1.8.0_162

      ---> Using cache

      ---> 9ca207749689

      Step 5/7 : ENV MYCAT_HOME /opt/mycat1.65

      ---> Using cache

      ---> 1a3c9d9863b6

      Step 6/7 : ENV PATH /usr/bin:$JAVA_HOME/bin:$MYCAT_HOME/bin:PATH

      ---> Running in ff21c0168f81

      Removing intermediate container ff21c0168f81

      ---> afcd45c2bb5e

      Step 7/7 : CMD mycat console

      ---> Running in b17bf693bbbf

      Removing intermediate container b17bf693bbbf

      ---> 1254457c68d1

      Successfully built 1254457c68d1

      Successfully tagged mycat-server:latest

      如果显示 Successfully 表示镜像已经构建成功

    • 运行测试

      直接执行镜像 run 命令,并增加端口映射,启动镜像:

      [root@docker mycat-server-build]# docker run -it --name mycat-server -p 8066:8066 -p 9066:9066 mycat-server

      Running Mycat-server...

      wrapper | --> Wrapper Started as Console

      wrapper | Launching a JVM...

      jvm 1 | Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=64M; support was removed in 8.0

      jvm 1 | Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org

      jvm 1 | Copyright 1999-2006 Tanuki Software, Inc. All Rights Reserved.

      jvm 1 |

      jvm 1 | MyCAT Server startup successfully. see logs in logs/mycat.log

         

      由于我们是以 -it 参数(交互模式)启动镜像,因此直接将进入镜像能够看到具体的输出,如果是实际使用时,需要使用 -d 参数(后台的方式启动容器)来启动镜像:

      [root@docker mycat-server-build]# docker run -d --name mycat-server -p 8066:8066 -p 9066:9066 mycat-server

      e95153b538038cecb044bcb3d3f688a8cf3ac2e5f3585d33be8fe457aaeab7fb

         

      容器中的 mycat 会使用 /opt/mycat1.65/conf 目录下的配置文件进行启动,日志会记录到 /opt/mycat1.65/logs 中,如果我们希望将镜像中的日志或者配置文件读取或写入到本机中,可以增加 -v 参数(映射存储路径)来启动镜像:

      • 创建存储容器日志的目录,执行命令如下:

        mkdir docker-logs/mycat

      • 停止并移除 mycat-server 容器,执行命令如下:

        docker stop mycat-server

        mycat-server

        [root@docker /]# docker rm mycat-server

        mycat-server

      • 启动容器

        docker run -d --name mycat-server -p 8066:8066 -p 9066:9066 -v /docker-logs/mycat:/opt/mycat1.65/logs mycat-server

        41ce2ee1d756023481f7216684fa5a5ba9eb8df6845f63e4c8b5fe4e2e81e218

        查看本地目录 /docker-logs/mycat,可以看到 mycat 的日志存储文件:

        [root@docker mycat]# ls /docker-logs/mycat

        mycat.log mycat.pid wrapper.log

         

         

  • 相关阅读:
    Jzoj2581 最大公约数
    Jzoj2270 【SDOI2011】计算器
    Jzoj2270 【SDOI2011】计算器
    SystemVerilog语言简介(三) 分类: 硬件开发_FPGA 2013-10-09 16:52 540人阅读 评论(0) 收藏
    SystemVerilog语言简介(二) 分类: 硬件开发_FPGA 2013-10-09 16:51 438人阅读 评论(0) 收藏
    SystemVerilog语言简介(一) 分类: 硬件开发_FPGA 2013-10-09 16:49 468人阅读 评论(0) 收藏
    windows进程间通信 . 分类: VC++ 2013-10-09 16:27 567人阅读 评论(0) 收藏
    事件和进程间的数据交换 . 分类: VC++ 2013-10-09 11:47 585人阅读 评论(0) 收藏
    企业没“文化”很可怕 分类: 项目管理 2013-10-09 11:34 355人阅读 评论(0) 收藏
    每个单位都有三种人 分类: 项目管理 2013-10-09 11:34 355人阅读 评论(0) 收藏
  • 原文地址:https://www.cnblogs.com/li3807/p/8973100.html
Copyright © 2020-2023  润新知