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

       

       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM