java程式容器化部署的一次實踐
阿新 • • 發佈:2020-11-06
背景
需求:將現有的一個java程式遷移為容器化部署。大致過程為,根據目前物理機部署環境,以centos7為基礎映象,加入程式執行用到的jdk和oracle client環境,然後指定啟動命令。
檔案準備
$ ls
Dockerfile test-3.3.tar.gz jdk-8u251-linux-x64.tar.gz oracle-instantclient19.8.tar.gz README.md
編寫Dockerfile
$ vi Dockerfile FROM centos:7 MAINTAINER Peter<[email protected]> ADD oracle-instantclient19.8.tar.gz /app ADD test-3.3.tar.gz /app ADD jdk-8u251-linux-x64.tar.gz /app RUN yum install -y libaio RUN rpm -ivh /app/oracle-instantclient19.8/oracle-instantclient19.8-basic-19.8.0.0.0-1.x86_64.rpm RUN rpm -ivh /app/oracle-instantclient19.8/oracle-instantclient19.8-devel-19.8.0.0.0-1.x86_64.rpm RUN rpm -ivh /app/oracle-instantclient19.8/oracle-instantclient19.8-sqlplus-19.8.0.0.0-1.x86_64.rpm RUN rpm -ivh /app/oracle-instantclient19.8/oracle-instantclient19.8-tools-19.8.0.0.0-1.x86_64.rpm ENV JAVA_HOME /app/jdk1.8.0_251 ENV LANG en_US.UTF-8 ENV LANGUAGE en_US:en ENV LC_ALL en_US.UTF-8 ENV ORACLE_HOME /usr/lib/oracle/19.8/client64 ENV PATH $PATH:$ORACLE_HOME/bin ENV LD_LIBRARY_PATH $ORACLE_HOME/lib:$LD_LIBRARY_PATH VOLUME /app/test-3.3/conf ENTRYPOINT ["/app/test-3.3/bin/startup.sh", "-ftp", "y"] $
構建映象
$ docker build -t test:3.3 .
檢視映象
$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
test 3.3 2f1c200490ae 2 days ago 1.1GB
$
執行容器
$ docker run -d \ -v /work/test-3.3-conf:/app/test-3.3/conf \ --name test \ test:3.3 $
匯出映象
$ docker save test:3.3 > test-3.3.tar
$ ls fpf-xml2db-lte-nrm.tar
fpf-xml2db-lte-nrm.tar
$
匯入映象
$ docker load < fpf-xml2db-lte-nrm.tar