中文字幕人妻中文_99精品欧美一区二区三区综合在线_精品久久久久一区二区_色月丁香_免费福利在线视频_欧美大片免费观看网址_国产伦精品一区二区三区在线播放_污污污污污污www网站免费_久久月本道色综合久久_色69激情爱久久_尹人香蕉久久99天天拍_国产美女www_亚洲国产精品无码7777一线_五月婷婷六月激情_看免费一级片_精品久久久久久成人av_在线色亚洲_女人另类性混交zo_国产精品青青在线观看爽香蕉_人人澡人人添人人爽一区二区

主頁 > 知識庫 > 基于alpine用dockerfile創(chuàng)建的tomcat鏡像的實現(xiàn)

基于alpine用dockerfile創(chuàng)建的tomcat鏡像的實現(xiàn)

熱門標簽:安陽ai電銷機器人軟件 智能電話機器人坐席 外呼系統(tǒng)的經(jīng)營范圍 廈門營銷外呼系統(tǒng)平臺 云會外呼系統(tǒng) 涪陵商都400電話開通辦理 申請400電話價格多少 外呼系統(tǒng)不彈窗 柳州市機器人外呼系統(tǒng)報價

1、下載alpine鏡像

[root@docker43 ~]# docker pull alpine
Using default tag: latest
Trying to pull repository docker.io/library/alpine ...
latest: Pulling from docker.io/library/alpine
4fe2ade4980c: Pull complete
Digest: sha256:621c2f39f8133acb8e64023a94dbdf0d5ca81896102b9e57c0dc184cadaf5528
Status: Downloaded newer image for docker.io/alpine:latest
[root@docker43 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/alpine latest 196d12cf6ab1 3 weeks ago 4.41 MB 

2、通過dockerfile構建鏡像

在其他的資料中很多都是下載包然后在dockerfile 使用COPY進行拷貝,這里我就不這樣做了,我們分開寫(都是通過dockerfile進行構建鏡像)

2.1.構建jdk鏡像

創(chuàng)建jdk目錄

[root@docker43 ~]# cd /opt/
[root@docker43 opt]# mkdir -p alpine_jre && cd alpine_jre && touch Dockerfile
[root@docker43 alpine_jre]# ll
總用量 0
-rw-r--r-- 1 root root 0 10月 6 17:39 Dockerfile 

編寫dockerfile文件

# 基礎鏡像
FROM alpine
 
# 作者信息
MAINTAINER JRE Docker Maintainers "1024331014@qq.com"
 
# 修改源
RUN echo "http://mirrors.aliyun.com/alpine/latest-stable/main/" > /etc/apk/repositories && \

  echo "http://mirrors.aliyun.com/alpine/latest-stable/community/" >> /etc/apk/repositories
 
# 安裝需要的軟件
RUN apk update && \

  apk add --no-cache ca-certificates && \

  apk add --no-cache curl bash tree tzdata && \

  cp -rf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
 
# 定義環(huán)境變量
ENV PATH /usr/local/bin:${PATH}
 
# 安裝JRE
RUN apk add --nocache openjdk8-jre-base && \

  rm -rf /var/cache/apk/*
 
RUN { \

    echo '#!/bin/sh'; \

    echo 'set -e'; \

    echo; \

    echo 'dirname "$(dirname "$(readlink -f "$(which javac || which java)")")"'; \

   } > /usr/local/bin/docker-java-home \

  && chmod +x /usr/local/bin/docker-java-home
 
ENV JAVA_HOME /usr/lib/jvm/default-jvm
ENV PATH ${PATH}:${JAVA_HOME}/bin:${JAVA_HOME}/jre/bin
ENV JAVA_VERSION 8u71
ENV JAVA_ALPINE_VERSION 8.171.11-r0
RUN set -x \

  \

  && apk add --no-cache \

  \

  openjdk8-jre="$JAVA_ALPINE_VERSION" 

創(chuàng)建鏡像

[root@docker43 alpine_jre]# docker build -t alpine_jre . 

查看鏡像

[root@docker43 alpine_jre]# docker images
REPOSITORY     TAG         IMAGE ID      CREATED       SIZE
alpine_jre     latest       614bc57ab66e    33 seconds ago   91.1 MB
docker.io/alpine  latest       196d12cf6ab1    3 weeks ago     4.41 MB 

2.2.構建tomcat鏡像

創(chuàng)建tomcat目錄

[root@docker43 ~]# cd /opt/
[root@docker43 opt]# mkdir -p jre_tomcat && cd jre_tomcat && touch Dockerfile
[root@docker43 jre_tomcat]# ll
總用量 0
-rw-r--r-- 1 root root 0 10月 6 17:46 Dockerfile 

編寫dockerfile(基于上面的alpine_jre鏡像)

#基礎鏡像
FROM alpine_jre
 
# 作者信息
MAINTAINER tomcat Docker Maintainers "1024331014@qq.com"
 
# 定義tomcat變量(如果有其他的可以在這里加)
ENV CATALINA_HOME /usr/local/tomcat
ENV PATH $CATALINA_HOME/bin:$PATH
RUN mkdir -p "$CATALINA_HOME"
WORKDIR $CATALINA_HOME
 
# let "Tomcat Native" live somewhere isolated
ENV TOMCAT_NATIVE_LIBDIR $CATALINA_HOME/native-jni-lib
ENV LD_LIBRARY_PATH ${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$TOMCAT_NATIVE_LIBDIR
 
RUN apk add --no-cache gnupg
 
# see http://archive.apache.org/dist/tomcat/tomcat-$TOMCAT_MAJOR/KEYS
# see also "update.sh" (https://github.com/docker-library/tomcat/blob/master/update.sh)
ENV GPG_KEYS 05AB33110949707C93A279E3D3EFE6B686867BA6 07E48665A34DCAFAE522E5E6266191C37C037D42 47309207D818FFD8DCD3F83F1931D684307A10A5 541FBE7D8F78B25E055DDEE13C370389288584E7 61B832AC2F1C5A90F0F9B00A1C506407564C17A3 713DA88BE50911535FE716F5208B0AB1D63011C7 79F7026C690BAA50B92CD8B66A3AD3F4F22C4FED 9BA44C2621385CB966EBA586F72C284D731FABEE A27677289986DB50844682F8ACB77FC2E86E29AC A9C5DF4D22E99998D9875A5110C01C5A2F6059E7 DCFD35E0BF8CA7344752DE8B6FB21E8933C60243 F3A04C595DB5B6A5F1ECA43E3B7BBB100D811BBE F7DA48BB64BCB84ECBA7EE6935CD23C10D498E23
RUN set -ex; \

    for key in $GPG_KEYS; do \

        gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; \

    done
 
# 定義tomcat版本
ENV TOMCAT_MAJOR 8
ENV TOMCAT_VERSION 8.0.53
 
# 下載
# https://issues.apache.org/jira/browse/INFRA-8753?focusedCommentId=14735394#comment-14735394
ENV TOMCAT_TGZ_URL https://www.apache.org/dyn/closer.cgi?action=download&filename=tomcat/tomcat-$TOMCAT_MAJOR/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz
# not all the mirrors actually carry the .asc files :'(
ENV TOMCAT_ASC_URL http://archive.apache.org/dist/tomcat/tomcat-$TOMCAT_MAJOR/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz.asc
 
# 安裝
RUN set -x \

    \

    && apk add --no-cache --virtual .fetch-deps \

        ca-certificates \

        tar \

        openssl \

    && wget -O tomcat.tar.gz "$TOMCAT_TGZ_URL" \

    && wget -O tomcat.tar.gz.asc "$TOMCAT_ASC_URL" \

    && gpg --batch --verify tomcat.tar.gz.asc tomcat.tar.gz \

    && tar -xvf tomcat.tar.gz --strip-components=1 \

    && rm bin/*.bat \

    && rm tomcat.tar.gz* \

    \

    && nativeBuildDir="$(mktemp -d)" \

    && tar -xvf bin/tomcat-native.tar.gz -C "$nativeBuildDir" --strip-components=1 \

    && apk add --no-cache --virtual .native-build-deps \

        apr-dev \

        dpkg-dev dpkg \

        gcc \

        libc-dev \

        make \

        "openjdk${JAVA_VERSION%%[-~bu]*}"="$JAVA_ALPINE_VERSION" \

        openssl-dev \

    && ( \

        export CATALINA_HOME="$PWD" \

        && cd "$nativeBuildDir/native" \

        && gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \

        && ./configure \

            --build="$gnuArch" \

            --libdir="$TOMCAT_NATIVE_LIBDIR" \

            --prefix="$CATALINA_HOME" \

            --with-apr="$(which apr-1-config)" \

            --with-java-home="$(docker-java-home)" \

            --with-ssl=yes \

        && make -j$(getconf _NPROCESSORS_ONLN) \

        && make install \

    ) \

    && runDeps="$( \

        scanelf --needed --nobanner --recursive "$TOMCAT_NATIVE_LIBDIR" \

            | awk '{ gsub(/,/, "\nso:", $2); print "so:" $2 }' \

            | sort -u \

            | xargs -r apk info --installed \

            | sort -u \

    )" \

    && apk add --virtual .tomcat-native-rundeps $runDeps \

    && apk del .fetch-deps .native-build-deps \

    && rm -rf "$nativeBuildDir" \

    && rm bin/tomcat-native.tar.gz
 
# verify Tomcat Native is working properly
RUN set -e \

    && nativeLines="$(catalina.sh configtest 2>&1)" \

    && nativeLines="$(echo "$nativeLines" | grep 'Apache Tomcat Native')" \

    && nativeLines="$(echo "$nativeLines" | sort -u)" \

    && if ! echo "$nativeLines" | grep 'INFO: Loaded APR based Apache Tomcat Native library' >&2; then \

        echo >&2 "$nativeLines"; \

        exit 1; \

    fi
 
# 開發(fā)8080端口
EXPOSE 8080
# 執(zhí)行命令
CMD ["catalina.sh", "run"] 

創(chuàng)建鏡像

[root@docker43 jre_tomcat]# docker build -t tomcat:1.0 . 

查看鏡像

[root@docker43 jre_tomcat]# docker images
REPOSITORY     TAG         IMAGE ID      CREATED       SIZE
tomcat       1.0         64c9cec4375d    7 seconds ago    124 MB
alpine_jre     latest       614bc57ab66e    8 minutes ago    91.1 MB
docker.io/alpine  latest       196d12cf6ab1    3 weeks ago     4.41 MB 

2.3.構建tomcat_web鏡像

創(chuàng)建tomcat_web目錄(包含Dockerfile和啟動文件)

[root@docker43 ~]# cd /opt/
[root@docker43 opt]# mkdir tomcat_web && cd tomcat_web && touch Dockerfile && touch start.sh
[root@docker43 tomcat_web]# ll
總用量 0
-rw-r--r-- 1 root root 0 10月 6 17:53 Dockerfile
-rw-r--r-- 1 root root 0 10月 6 17:53 start.sh 

編寫start.sh啟動腳本

#!/bin/sh
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
 
# -----------------------------------------------------------------------------
# Control Script for the CATALINA Server
#
# Environment Variable Prerequisites
#
#  Do not set the variables in this script. Instead put them into a script
#  setenv.sh in CATALINA_BASE/bin to keep your customizations separate.
#
#  CATALINA_HOME  May point at your Catalina "build" directory.
#
#  CATALINA_BASE  (Optional) Base directory for resolving dynamic portions
#          of a Catalina installation. If not present, resolves to
#          the same directory that CATALINA_HOME points to.
#
#  CATALINA_OUT  (Optional) Full path to a file where stdout and stderr
#          will be redirected.
#          Default is $CATALINA_BASE/logs/catalina.out
#
#  CATALINA_OPTS  (Optional) Java runtime options used when the "start",
#          "run" or "debug" command is executed.
#          Include here and not in JAVA_OPTS all options, that should
#          only be used by Tomcat itself, not by the stop process,
#          the version command etc.
#          Examples are heap size, GC logging, JMX ports etc.
#
#  CATALINA_TMPDIR (Optional) Directory path location of temporary directory
#          the JVM should use (java.io.tmpdir). Defaults to
#          $CATALINA_BASE/temp.
#
#  JAVA_HOME    Must point at your Java Development Kit installation.
#          Required to run the with the "debug" argument.
#
#  JRE_HOME    Must point at your Java Runtime installation.
#          Defaults to JAVA_HOME if empty. If JRE_HOME and JAVA_HOME
#          are both set, JRE_HOME is used.
#
#  JAVA_OPTS    (Optional) Java runtime options used when any command
#          is executed.
#          Include here and not in CATALINA_OPTS all options, that
#          should be used by Tomcat and also by the stop process,
#          the version command etc.
#          Most options should go into CATALINA_OPTS.
#
#  JAVA_ENDORSED_DIRS (Optional) Lists of of colon separated directories
#          containing some jars in order to allow replacement of APIs
#          created outside of the JCP (i.e. DOM and SAX from W3C).
#          It can also be used to update the XML parser implementation.
#          Defaults to $CATALINA_HOME/endorsed.
#
#  JPDA_TRANSPORT (Optional) JPDA transport used when the "jpda start"
#          command is executed. The default is "dt_socket".
#
#  JPDA_ADDRESS  (Optional) Java runtime options used when the "jpda start"
#          command is executed. The default is localhost:8000.
#
#  JPDA_SUSPEND  (Optional) Java runtime options used when the "jpda start"
#          command is executed. Specifies whether JVM should suspend
#          execution immediately after startup. Default is "n".
#
#  JPDA_OPTS    (Optional) Java runtime options used when the "jpda start"
#          command is executed. If used, JPDA_TRANSPORT, JPDA_ADDRESS,
#          and JPDA_SUSPEND are ignored. Thus, all required jpda
#          options MUST be specified. The default is:
#
#          -agentlib:jdwp=transport=$JPDA_TRANSPORT,
#            address=$JPDA_ADDRESS,server=y,suspend=$JPDA_SUSPEND
#
#  JSSE_OPTS    (Optional) Java runtime options used to control the TLS
#          implementation when JSSE is used. Default is:
#          "-Djdk.tls.ephemeralDHKeySize=2048"
#
#  CATALINA_PID  (Optional) Path of the file which should contains the pid
#          of the catalina startup java process, when start (fork) is
#          used
#
#  LOGGING_CONFIG (Optional) Override Tomcat's logging config file
#          Example (all one line)
#          LOGGING_CONFIG="-Djava.util.logging.config.file=$CATALINA_BASE/conf/logging.properties"
#
#  LOGGING_MANAGER (Optional) Override Tomcat's logging manager
#          Example (all one line)
#          LOGGING_MANAGER="-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager"
#
#  USE_NOHUP    (Optional) If set to the string true the start command will
#          use nohup so that the Tomcat process will ignore any hangup
#          signals. Default is "false" unless running on HP-UX in which
#          case the default is "true"
# -----------------------------------------------------------------------------
 
# OS specific support. $var _must_ be set to either true or false.
cygwin=false
darwin=false
os400=false
hpux=false
case "`uname`" in
CYGWIN*) cygwin=true;;
Darwin*) darwin=true;;
OS400*) os400=true;;
HP-UX*) hpux=true;;
esac
 
# resolve links - $0 may be a softlink
PRG="$0"
 
while [ -h "$PRG" ]; do
 ls=`ls -ld "$PRG"`
 link=`expr "$ls" : '.*-> \(.*\)$'`
 if expr "$link" : '/.*' > /dev/null; then
  PRG="$link"
 else
  PRG=`dirname "$PRG"`/"$link"
 fi
done
 
# Get standard environment variables
PRGDIR=`dirname "$PRG"`
 
# Only set CATALINA_HOME if not already set
[ -z "$CATALINA_HOME" ] && CATALINA_HOME=`cd "$PRGDIR/.." >/dev/null; pwd`
 
# Copy CATALINA_BASE from CATALINA_HOME if not already set
[ -z "$CATALINA_BASE" ] && CATALINA_BASE="$CATALINA_HOME"
 
# Ensure that any user defined CLASSPATH variables are not used on startup,
# but allow them to be specified in setenv.sh, in rare case when it is needed.
CLASSPATH=
 
if [ -r "$CATALINA_BASE/bin/setenv.sh" ]; then
 . "$CATALINA_BASE/bin/setenv.sh"
elif [ -r "$CATALINA_HOME/bin/setenv.sh" ]; then
 . "$CATALINA_HOME/bin/setenv.sh"
fi
 
# For Cygwin, ensure paths are in UNIX format before anything is touched
if $cygwin; then
 [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
 [ -n "$JRE_HOME" ] && JRE_HOME=`cygpath --unix "$JRE_HOME"`
 [ -n "$CATALINA_HOME" ] && CATALINA_HOME=`cygpath --unix "$CATALINA_HOME"`
 [ -n "$CATALINA_BASE" ] && CATALINA_BASE=`cygpath --unix "$CATALINA_BASE"`
 [ -n "$CLASSPATH" ] && CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
fi
 
# Ensure that neither CATALINA_HOME nor CATALINA_BASE contains a colon
# as this is used as the separator in the classpath and Java provides no
# mechanism for escaping if the same character appears in the path.
case $CATALINA_HOME in
 *:*) echo "Using CATALINA_HOME:  $CATALINA_HOME";
    echo "Unable to start as CATALINA_HOME contains a colon (:) character";
    exit 1;
esac
case $CATALINA_BASE in
 *:*) echo "Using CATALINA_BASE:  $CATALINA_BASE";
    echo "Unable to start as CATALINA_BASE contains a colon (:) character";
    exit 1;
esac
 
# For OS400
if $os400; then
 # Set job priority to standard for interactive (interactive - 6) by using
 # the interactive priority - 6, the helper threads that respond to requests
 # will be running at the same priority as interactive jobs.
 COMMAND='chgjob job('$JOBNAME') runpty(6)'
 system $COMMAND
 
 # Enable multi threading
 export QIBM_MULTI_THREADED=Y
fi
 
# Get standard Java environment variables
if $os400; then
 # -r will Only work on the os400 if the files are:
 # 1. owned by the user
 # 2. owned by the PRIMARY group of the user
 # this will not work if the user belongs in secondary groups
 . "$CATALINA_HOME"/bin/setclasspath.sh
else
 if [ -r "$CATALINA_HOME"/bin/setclasspath.sh ]; then
  . "$CATALINA_HOME"/bin/setclasspath.sh
 else
  echo "Cannot find $CATALINA_HOME/bin/setclasspath.sh"
  echo "This file is needed to run this program"
  exit 1
 fi
fi
 
# Add on extra jar files to CLASSPATH
if [ ! -z "$CLASSPATH" ] ; then
 CLASSPATH="$CLASSPATH":
fi
CLASSPATH="$CLASSPATH""$CATALINA_HOME"/bin/bootstrap.jar
 
if [ -z "$CATALINA_OUT" ] ; then
 CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out
fi
 
if [ -z "$CATALINA_TMPDIR" ] ; then
 # Define the java.io.tmpdir to use for Catalina
 CATALINA_TMPDIR="$CATALINA_BASE"/temp
fi
 
# Add tomcat-juli.jar to classpath
# tomcat-juli.jar can be over-ridden per instance
if [ -r "$CATALINA_BASE/bin/tomcat-juli.jar" ] ; then
 CLASSPATH=$CLASSPATH:$CATALINA_BASE/bin/tomcat-juli.jar
else
 CLASSPATH=$CLASSPATH:$CATALINA_HOME/bin/tomcat-juli.jar
fi
 
# Bugzilla 37848: When no TTY is available, don't output to console
have_tty=0
if [ "`tty`" != "not a tty" ]; then
  have_tty=1
fi
 
# For Cygwin, switch paths to Windows format before running java
if $cygwin; then
 JAVA_HOME=`cygpath --absolute --windows "$JAVA_HOME"`
 JRE_HOME=`cygpath --absolute --windows "$JRE_HOME"`
 CATALINA_HOME=`cygpath --absolute --windows "$CATALINA_HOME"`
 CATALINA_BASE=`cygpath --absolute --windows "$CATALINA_BASE"`
 CATALINA_TMPDIR=`cygpath --absolute --windows "$CATALINA_TMPDIR"`
 CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
 JAVA_ENDORSED_DIRS=`cygpath --path --windows "$JAVA_ENDORSED_DIRS"`
fi
 
if [ -z "$JSSE_OPTS" ] ; then
 JSSE_OPTS="-Djdk.tls.ephemeralDHKeySize=2048"
fi
JAVA_OPTS="$JAVA_OPTS $JSSE_OPTS"
 
# Register custom URL handlers
# Do this here so custom URL handles (specifically 'war:...') can be used in the security policy
JAVA_OPTS="$JAVA_OPTS -Djava.protocol.handler.pkgs=org.apache.catalina.webresources"
 
# Set juli LogManager config file if it is present and an override has not been issued
if [ -z "$LOGGING_CONFIG" ]; then
 if [ -r "$CATALINA_BASE"/conf/logging.properties ]; then
  LOGGING_CONFIG="-Djava.util.logging.config.file=$CATALINA_BASE/conf/logging.properties"
 else
  # Bugzilla 45585
  LOGGING_CONFIG="-Dnop"
 fi
fi
 
if [ -z "$LOGGING_MANAGER" ]; then
 LOGGING_MANAGER="-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager"
fi
 
# Uncomment the following line to make the umask available when using the
# org.apache.catalina.security.SecurityListener
#JAVA_OPTS="$JAVA_OPTS -Dorg.apache.catalina.security.SecurityListener.UMASK=`umask`"
 
if [ -z "$USE_NOHUP" ]; then
  if $hpux; then
    USE_NOHUP="true"
  else
    USE_NOHUP="false"
  fi
fi
unset _NOHUP
if [ "$USE_NOHUP" = "true" ]; then
  _NOHUP=nohup
fi
 
# ----- Execute The Requested Command -----------------------------------------
 
# Bugzilla 37848: only output this if we have a TTY
if [ $have_tty -eq 1 ]; then
 echo "Using CATALINA_BASE:  $CATALINA_BASE"
 echo "Using CATALINA_HOME:  $CATALINA_HOME"
 echo "Using CATALINA_TMPDIR: $CATALINA_TMPDIR"
 if [ "$1" = "debug" ] ; then
  echo "Using JAVA_HOME:    $JAVA_HOME"
 else
  echo "Using JRE_HOME:    $JRE_HOME"
 fi
 echo "Using CLASSPATH:    $CLASSPATH"
 if [ ! -z "$CATALINA_PID" ]; then
  echo "Using CATALINA_PID:  $CATALINA_PID"
 fi
fi
 
if [ "$1" = "jpda" ] ; then
 if [ -z "$JPDA_TRANSPORT" ]; then
  JPDA_TRANSPORT="dt_socket"
 fi
 if [ -z "$JPDA_ADDRESS" ]; then
  JPDA_ADDRESS="localhost:8000"
 fi
 if [ -z "$JPDA_SUSPEND" ]; then
  JPDA_SUSPEND="n"
 fi
 if [ -z "$JPDA_OPTS" ]; then
  JPDA_OPTS="-agentlib:jdwp=transport=$JPDA_TRANSPORT,address=$JPDA_ADDRESS,server=y,suspend=$JPDA_SUSPEND"
 fi
 CATALINA_OPTS="$JPDA_OPTS $CATALINA_OPTS"
 shift
fi
 
if [ "$1" = "debug" ] ; then
 if $os400; then
  echo "Debug command not available on OS400"
  exit 1
 else
  shift
  if [ "$1" = "-security" ] ; then
   if [ $have_tty -eq 1 ]; then
    echo "Using Security Manager"
   fi
   shift
   exec "$_RUNJDB" "$LOGGING_CONFIG" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \

    -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \

    -sourcepath "$CATALINA_HOME"/../../java \

    -Djava.security.manager \

    -Djava.security.policy=="$CATALINA_BASE"/conf/catalina.policy \

    -Dcatalina.base="$CATALINA_BASE" \

    -Dcatalina.home="$CATALINA_HOME" \

    -Djava.io.tmpdir="$CATALINA_TMPDIR" \

    org.apache.catalina.startup.Bootstrap "$@" start
  else
   exec "$_RUNJDB" "$LOGGING_CONFIG" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \

    -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \

    -sourcepath "$CATALINA_HOME"/../../java \

    -Dcatalina.base="$CATALINA_BASE" \

    -Dcatalina.home="$CATALINA_HOME" \

    -Djava.io.tmpdir="$CATALINA_TMPDIR" \

    org.apache.catalina.startup.Bootstrap "$@" start
  fi
 fi
 
elif [ "$1" = "run" ]; then
 
 shift
 if [ "$1" = "-security" ] ; then
  if [ $have_tty -eq 1 ]; then
   echo "Using Security Manager"
  fi
  shift
  eval exec "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \

   -Djava.endorsed.dirs="\"$JAVA_ENDORSED_DIRS\"" -classpath "\"$CLASSPATH\"" \

   -Djava.security.manager \

   -Djava.security.policy=="\"$CATALINA_BASE/conf/catalina.policy\"" \

   -Dcatalina.base="\"$CATALINA_BASE\"" \

   -Dcatalina.home="\"$CATALINA_HOME\"" \

   -Djava.io.tmpdir="\"$CATALINA_TMPDIR\"" \

   org.apache.catalina.startup.Bootstrap "$@" start
 else
  eval exec "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \

   -Djava.endorsed.dirs="\"$JAVA_ENDORSED_DIRS\"" -classpath "\"$CLASSPATH\"" \

   -Dcatalina.base="\"$CATALINA_BASE\"" \

   -Dcatalina.home="\"$CATALINA_HOME\"" \

   -Djava.io.tmpdir="\"$CATALINA_TMPDIR\"" \

   org.apache.catalina.startup.Bootstrap "$@" start \

   >> "$CATALINA_OUT" 2>&1 
 fi
fi 

編寫dockerfile(基于上面的tomcat鏡像)

# 基礎鏡像
FROM tomcat:1.0
 
# 創(chuàng)建項目目錄和日志目錄,這個是要在宿主機-v掛載的
RUN set -x \

  &&mkdir -p /Webs/logs \

  \

  &&rm -rf /usr/local/tomcat/logs \

  \

  &&ln -sf /Webs/logs /usr/local/tomcat/logs
 
# 將啟動文件copy到容器
COPY start.sh /usr/local/tomcat/bin/
 
# 給容器的啟動腳本權限
RUN chmod +x /usr/local/tomcat/bin/start.sh
 
# 開放8080端口
EXPOSE 8080
 
# 運行tomcat
CMD ["start.sh","run"] 

創(chuàng)建鏡像

[root@docker43 tomcat_web]# docker build -t tomcat_web:v1 . 

查看鏡像

[root@docker43 tomcat_web]# docker images
REPOSITORY     TAG         IMAGE ID      CREATED       SIZE
tomcat_web     v1         b3651c50a7b5    26 seconds ago   124 MB
tomcat       1.0         64c9cec4375d    6 minutes ago    124 MB
alpine_jre     latest       614bc57ab66e    14 minutes ago   91.1 MB
docker.io/alpine  latest       196d12cf6ab1    3 weeks ago     4.41 MB 

3、創(chuàng)建容器

創(chuàng)建項目目錄

我們是基于tomcat_web鏡像進行創(chuàng)建容器的

首先我先在宿主機上創(chuàng)建個項目的目錄(server.xml的配置文件拷貝改路徑就能用)

[root@docker43 ~]# cd /home/
[root@docker43 home]# mkdir test.tomcat.com && cd test.tomcat.com
[root@docker43 test.tomcat.com]# touch server.xml # 配置文件
[root@docker43 test.tomcat.com]# mkdir logs    # 日志目錄
[root@docker43 test.tomcat.com]# mkdir wwwroot   # 項目主目錄(要是修改了記得也在server.xml進行修改)
[root@docker43 test.tomcat.com]# ll
總用量 0
drwxr-xr-x 2 root root 6 10月 6 18:03 logs
-rw-r--r-- 1 root root 0 10月 6 18:02 server.xml
drwxr-xr-x 2 root root 6 10月 6 18:03 wwwroot 

server.xml配置文件

  <?xml version='1.0' encoding='utf-8'?>
  <Server port="8005" shutdown="SHUTDOWN">
  <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
  <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
 
  <GlobalNamingResources>
 
   <Resource name="UserDatabase" auth="Container"
        type="org.apache.catalina.UserDatabase"
        description="User database that can be updated and saved"
        factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
        pathname="conf/tomcat-users.xml" />
  </GlobalNamingResources>
 
  <Service name="Catalina">
   <Connector port="8080" protocol="org.apache.coyote.http11.Http11AprProtocol"
        connectionTimeout="20000"
        maxThreads="1000" 
        minSpareThreads="100" 
        redirectPort="8443" URIEncoding="UTF-8"/>
   <Connector port="8009" maxThreads="1000" minSpareThreads="100" protocol="AJP/1.3" redirectPort="8443" />
   <Engine name="Catalina" defaultHost="localhost">
    <Realm className="org.apache.catalina.realm.LockOutRealm">
    <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
    </Realm>
 
    <Host name="localhost" appBase="/Webs/wwwroot" unpackWARs="true" autoDeploy="true">
     <Context path="" docBase="/Webs/wwwroot" reloadable="true" />
     <Valve className="org.apache.catalina.valves.AccessLogValve" 
     directory="logs" 
     prefix="localhost__access_log" 
     suffix=".txt" 
     pattern="%{X-Real-IP}i %l %u %t &quot;%r&quot; %s %b" />
 
    </Host>
 
   </Engine>
  </Service>
 </Server>

編寫測試頁面

在wwwroot中編寫個測試頁面

[root@docker43 test.tomcat.com]# cd wwwroot/
[root@docker43 wwwroot]# cat index.html 

成功了

創(chuàng)建并啟動容器

復制代碼 代碼如下:
docker run -tid  --restart=always --name test.tomcat.com  -p 5081:8080 -v /home/test.tomcat.com/:/Webs -m 2048m  --memory-swap=2048m  --cpu-shares=256  tomcat_web:v1 start.sh  run -config /Webs/server.xml

查看容器

[root@docker43 test.tomcat.com]# docker ps
CONTAINER ID    IMAGE        COMMAND         CREATED       STATUS       PORTS          NAMES
ab62045e0688    tomcat_web:v1    "start.sh run -con..."  2 seconds ago    Up 1 second     0.0.0.0:5081->8080/tcp  test.tomcat.com 

測試

[root@docker43 test.tomcat.com]# curl 127.0.0.1:5081
成功了
[root@docker43 test.tomcat.com]# 

4、溫馨提示

1、各位肯定會問我問什么要做這么多的鏡像,我的回答是每個都獨立出來 放在之后的私有倉庫中,以后可以單獨的使用

2、這篇文章的代碼都完全的可以直接的復制粘貼使用,要注意的是根據(jù)自己的情況來修改Dockerfile的變量版本,還有就是項目的路徑和創(chuàng)建容器的參數(shù)

3、我們在創(chuàng)建第二個項目的使用,完全可以重復的執(zhí)行創(chuàng)建容器的步驟只是修改下項目目錄的名字和容器的名字而已

4、也可以把上面的三個dockerfile文件合并創(chuàng)建鏡像,但是不建議這樣做

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

標簽:巴中 孝感 晉城 蕪湖 福州 撫順 綏化 南充

巨人網(wǎng)絡通訊聲明:本文標題《基于alpine用dockerfile創(chuàng)建的tomcat鏡像的實現(xiàn)》,本文關鍵詞  基于,alpine,用,dockerfile,創(chuàng)建,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《基于alpine用dockerfile創(chuàng)建的tomcat鏡像的實現(xiàn)》相關的同類信息!
  • 本頁收集關于基于alpine用dockerfile創(chuàng)建的tomcat鏡像的實現(xiàn)的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 南通申通机械有限公司| 浙江创伟机械有限公司| 合肥金锡机械有限公司| 唐山正丰钢铁有限公司| 恩比尔(厦门)机械制造有限公司| 江阴市华夏包装机械有限公司| 江苏东邦机械有限公司| 中山艾能机械有限公司| 利勃海尔机械大连有限公司| 河北永洋钢铁有限公司详细地址| 厦门精密机械有限公司| 郑州三和水工机械有限公司| 山东河山机械有限公司| 骁马机械上海有限公司| 昆山乔地精密机械有限公司| 金华市机械有限公司| 张家港斯依格机械设备制造有限公司 | 恩格尔机械上海有限公司| 盐城丰炜机械制造有限公司| 金沙机械制造有限公司| 南通奥普机械工程有限公司| 长葛鑫鑫机械有限公司| 无锡市川中五金机械有限公司| 潍坊裕川机械有限公司| 九江萍钢钢铁有限公司电话| 上海美捷伦包装机械有限公司 | 南京东部精密机械有限公司| 秦皇岛 机械设备有限公司| 河南省平原矿山机械有限公司 | 梁山机械制造有限公司| 江阴起重机械有限公司| 成都包装机械有限公司| 绿友园林机械有限公司| 海宁市腾达机械有限公司| 重庆嘉木机械有限公司| 浙江恒齿传动机械有限公司| 潍坊宇航机械有限公司| 沃洲机械制造有限公司| 上海舒平精工机械有限公司| 上海捷如重工机电设备有限公司 | 上海理贝包装机械有限公司| 常熟神马机械有限公司| 河南省起重机械有限公司| 诸城市华邦机械有限公司| 南京登峰起重设备制造有限公司| 海的动力机械有限公司| 浙江雷克机械工业有限公司| 重庆旺田机械有限公司| 无锡兆立精密机械有限公司| 盐城市联鑫钢铁有限公司| 洛阳福格森机械装备有限公司| 浙江四和机械有限公司| 东莞自动化机械有限公司| 临沂新天力机械有限公司| 常州先电机械有限公司| 济宁工程机械有限公司| 天津市三鼎包装机械有限公司 | 龙口隆基机械有限公司| 湖北大展钢铁有限公司| 冠龙阀门机械有限公司| 张家港斯依格机械设备制造有限公司 | 佛山市万为包装机械有限公司 | 宁波北仑 机械有限公司| 淄博推进化工机械有限公司| 青岛弗林斯曼机械制造有限公司| 山东山推工程机械结构件有限公司 | 山东创铭机械有限公司| 江苏宏威重工机床制造有限公司| 宁波迈拓斯数控机械有限公司 | 杭州力诺机械设备有限公司| 浙江瑞德森机械有限公司| 温州利波机械有限公司| 广西玉柴重工有限公司| 昆山环保机械有限公司| 郑州机械制造有限公司| 山东骏腾起重设备有限公司 | 山东建凌机械有限公司| 江阴市中立机械工业有限公司| 安阳三一机械有限公司| 昆明群泰机械有限公司| 东莞通盛机械有限公司| 江苏鑫林钢铁有限公司| 上海汉普机械有限公司| 浙江瑞德森机械有限公司| 扬州液压机械有限公司| 上海鹰宏机械有限公司| 珠海康信精密机械有限公司| 常德烟草机械有限公司| 江苏韩通船舶重工有限公司| 陕西机械制造有限公司| 上海松川远亿机械设备有限公司| 中山市凌宇机械有限公司| 杭州中亚机械 有限公司| 杭州食品机械有限公司| 上海御流包装机械有限公司| 无锡聚英机械有限公司| 青岛昊悦机械有限公司| 宁波凯特机械有限公司| 人科机械设备有限公司| 东莞市新望包装机械有限公司| 济南金迈达机械有限公司| 上海恒麦食品机械有限公司| 泰安重工机械有限公司| 山东萨丁重工有限公司| 锦机械设备有限公司| 上海开隆冶金机械制造有限公司 | 洛阳天宇机械制造有限公司| 扬州扬工机械有限公司| 福州六和机械有限公司| 上海先德机械工程有限公司| 广州市金王机械设备有限公司| 缙云县机械有限公司| 海南建设工程机械施工有限公司| 东莞仕能机械设备有限公司| 广州善友机械设备有限公司| 河北中浩机械制造有限公司| 杭州海的机械有限公司| 上海瑞派机械有限公司招聘| 浙江宏涛机械有限公司| 日照机械制造有限公司| 上海安展机械设备有限公司| 湖州惠盛机械有限公司| 安阳市赛尔德精工机械有限公司| 石家庄机械设备有限公司| 上海机械实业有限公司| 浙江雷克机械工业有限公司 | 重型机械制造有限公司| 昆山弘迪精密机械有限公司 | 北京大铭世进机械设备有限公司| 济南精美机械设备有限公司| 河北永洋钢铁有限公司| 河南正亚机械设备制造有限公司| 南京拓源钢铁有限公司| 唐山泰钢钢铁有限公司| 广州新成机械技术有限公司| 佛山市精密机械有限公司| 东莞市鑫焘机械有限公司 | 德枫丹青岛机械有限公司招聘| 青岛同三塑料机械有限公司| 杭州冠浩机械设备有限公司| 沂南中天机械有限公司| 常州包装机械有限公司| 长春 机械 有限公司| 莱州市华弘机械有限公司| 天津敏信机械有限公司| 上海嘉歆包装机械有限公司| 宁波特艾科机械制造有限公司| 南京登峰起重设备制造有限公司| 昆山机械制造有限公司| 高邮和益机械有限公司| 无锡全盛安仁机械有限公司| 机械电子制造有限公司| 爱立许机械有限公司| 江苏双轮泵业机械制造有限公司 | 赛尔透平机械有限公司| 三一工程机械有限公司| 南通惠生重工有限公司| 江苏化工机械有限公司| 泰安机械有限公司招聘| 长城重工机械有限公司| 上海食品机械有限公司| 机械有限公司起名大全| 广州博创机械有限公司| 邢台钢铁有限公司官网| 珠海三麦机械有限公司| 上海红重机械装备有限公司| 上海五金机械有限公司| 勃农兴达机械有限公司| 青岛一津机械有限公司| 安徽好运机械有限公司| 椿中岛机械有限公司| 东莞市康机械有限公司| 南京钢铁联合有限公司| 芜湖 机械有限公司| 常州杰洋精密机械有限公司| 上海烨昌食品机械有限公司| 郑州一帆机械设备有限公司| 重庆磐达机械有限公司| 芜湖良仕机械有限公司| 百事德机械江苏有限公司| 山西海威钢铁有限公司| 泉州机械设备有限公司| 江苏科威机械有限公司| 盐城三益石化机械有限公司| 杭州山虎机械有限公司| 深圳市铭利达精密机械有限公司| 鑫华机械制造有限公司| 浙江东星纺织机械有限公司| 天津聚鑫贵泽钢铁贸易有限公司| 住友重机械有限公司| 烟台市利达木工机械有限公司| 天津机械设备有限公司| 河南正工机械制造有限公司| 德实机械平湖有限公司| 萨克米机械有限公司| 常州坤世精密机械有限公司| 山东泰安机械有限公司| 宣威凤凰钢铁有限公司| 青岛凯顿机械有限公司| 潍坊市通用机械有限公司| 常州市锦益机械有限公司| 湖南 机械设备有限公司| 浙江威泰机械有限公司| 湖南龙凤机械制造有限公司| 溧阳机械制造有限公司| 浙江瑞安机械有限公司| 首钢京唐钢铁有限公司| 上海又高机械有限公司| 众立机械制造有限公司| 浙江东星纺织机械有限公司| 天津市申成包装机械有限公司 | 昌信机械制造有限公司| 杭州天扬机械有限公司| 马氏木工机械有限公司| 太原重型机械有限公司| 成都杰瑞达工程机械有限公司 | 江苏泰美环保机械有限公司| 山东平安工程机械有限公司| 广州恒星冷冻机械制造有限公司 | 东莞宏品智能机械有限公司| 南通力威机械有限公司| 鑫达机械制造有限公司| 杭州山虎机械有限公司| 广州国伟机械有限公司| 天津机械设备有限公司| 苏州典艺精密机械有限公司| 沧州卓鑫机械设备制造有限公司| 山东诸城机械有限公司| 深圳固尔琦包装机械有限公司| 宁波迪恩机械有限公司| 圣博液压机械有限公司| 浙江大宇轻工机械有限公司| 东莞市恩必信塑胶机械有限公司| 上海凯机械有限公司| 中航国际钢铁贸易有限公司| 浙江方邦机械有限公司| 四川青城机械有限公司| 同鼎机械设备有限公司| 宁波星箭航天机械有限公司| 重村钢模机械工业苏州有限公司 | 台州 机械有限公司| 浙江华球机械制造有限公司| 福建兴翼机械有限公司| 芜湖电工机械有限公司| 杭州双龙机械有限公司| 杭州速能机械有限公司| 韶瑞重工有限公司官网| 东莞钰兴机械有限公司| 新乡市西贝机械有限公司| 瑞安市天晟包装机械有限公司| 齐鲁石化机械制造有限公司招聘| 昆山市机械有限公司| 江阴市机械设备有限公司| 百超玻璃机械有限公司| 宁波利豪机械有限公司| 高义钢铁有限公司电话| 临海正大机械有限公司| 安徽方圆机械有限公司| 新乡市振英机械设备有限公司| 恒兴机械设备有限公司| 瑞德森机械有限公司| 哈挺精密机械有限公司| 泉州奇星机械有限公司| 五矿钢铁天津有限公司| 澳太机械制造有限公司| 新乡市振英机械设备有限公司| 广州市磊蒙机械设备有限公司| 珠海市广浩捷精密机械有限公司 | 沈阳小松工程机械有限公司| 济南梓鑫机械有限公司| 重庆鹏程钢铁有限公司| 台州万洲机械有限公司| 浙江三叶机械有限公司| 合肥永升机械有限公司| 上海 钢铁物资有限公司| 洛阳震动机械有限公司| 浙江金华机械有限公司| 天津 机械制造有限公司| 瑞安包装机械有限公司| 标准缝纫机菀坪机械有限公司 | 江阴万恒机械制造有限公司| 平湖市机械有限公司| 宁波利豪机械有限公司| 宁波立强机械有限公司| 江苏化工机械有限公司| 盐山宏润重工有限公司| 青岛天乐机械有限公司| 昆明呈钢钢铁有限公司| 江苏本优机械有限公司| 河北德林机械有限公司| 徐州七星机械有限公司| 中交西安筑路机械有限公司| 合肥 机械有限公司| 北默压缩机械有限公司| 韶瑞重工有限公司官网| 上海航发机械有限公司| 南京 机械设备有限公司| 杭州萧山凯兴食品机械有限公司 | 奥通机械制造有限公司| 济南鼎业机械制造有限公司| 浙江德玛克机械有限公司| 江苏东禾机械有限公司| 苏州拓博机械设备有限公司| 东莞市佐臣自动化机械有限公司| 河北石阀机械设备有限公司| 浙江蓝宝机械有限公司| 苏州澳克机械有限公司| 郑州长宏机械制造有限公司| 浙江大宇轻工机械有限公司| 南通安港机械有限公司| 东莞安默琳机械制造技术有限公司| 浙江液压机械有限公司| 宁波信泰机械有限公司| 开封明芳机械有限公司| 华东造纸机械有限公司| 威海环宇化工机械有限公司| 东莞%机械制造有限公司| 四川华为钢铁有限公司| 济南聚鑫机械有限公司| 潍坊机械制造有限公司| 沃洲机械制造有限公司| 沂水巨龙机械有限公司| 三门峡宏基机械有限公司| 江苏宏达起重电机有限公司| 天盛机械制造有限公司| 上海颖盛机械有限公司| 洛阳泽华机械设备有限公司| 汶上金城机械有限公司| 台州路桥机械有限公司| 襄阳博亚机械有限公司| 许昌智工机械制造有限公司| 随州市恒大机械铸造有限公司 | 宁波机械制造有限公司| 上海冬松精密机械有限公司| 宁波德霖机械有限公司| 郑州志乾机械设备有限公司| 安徽大洋机械有限公司| 中科包装机械有限公司| 丰精密机械有限公司| 山东万力起重机械有限公司 | 苏州阿姆斯壮阀门机械有限公司| 江苏如皋钢铁有限公司| 嘉兴机械设备有限公司| 溧阳金纬机械有限公司| 南京钢铁联合有限公司| 宝鸡中车时代工程机械有限公司| 东莞市恒生机械制造有限公司| 东莞市旭田包装机械有限公司| 天津聚鑫贵泽钢铁贸易有限公司| 浙江东星纺织机械有限公司| 上海鹏则机械有限公司| 四川兴明泰机械有限公司| 天津宏大纺织机械有限公司| 台州市鲨鱼食品机械有限公司 | 江苏久保田农机机械有限公司| 成都诚旭精密机械有限公司| 青岛雷沃工程机械有限公司| 郑州双狮粮油机械有限公司| 浙江国机械有限公司| 首钢京唐钢铁有限公司| 厦门 机械有限公司| 重庆宏工工程机械有限公司| 江苏华粮机械有限公司| 龙口旭鑫机械有限公司| 武汉机械工程有限公司| 济南庚辰钢铁有限公司| 上海德仁橡塑机械有限公司| 山西高义钢铁有限公司| 同向精密机械有限公司| 中远海运重工有限公司| 苏州开隆机械有限公司| 盐城益聚达机械有限公司| 广州东昇机械有限公司| 上海金恒机械制造有限公司| 食品有限公司起名大全| 世翔精密机械制造有限公司| 湖北银轮机械有限公司| 天津华悦包装机械有限公司 | 诸城市铭威食品机械有限公司 | 农业机械设备有限公司| 广濑精密机械有限公司| 上海天驰制药机械有限公司 | 安徽宏远机械制造有限公司| 河北机械制造有限公司| 合肥康恒机械有限公司| 重庆机械设备有限公司| 盐城机械制造有限公司| 中欣机械厦门有限公司| 柳州恒瑞机械有限公司| 佶缔纳士机械有限公司| 武汉格瑞拓机械有限公司| 苏州德伊捷自动化机械有限公司| 青岛昊宇重工有限公司| 大丰奥泰机械有限公司| 山东祥远机械有限公司| 机械设备出口有限公司| 湖南省湘粮机械制造有限公司| 湘元三一机械有限公司| 隆英金坛机械有限公司| 宁波华骏机械有限公司| 东莞市今塑精密机械有限公司| 青岛工程机械有限公司| 上海舜锋机械制造有限公司| 浙江路杰机械有限公司| 济南森华精密机械有限公司| 恒联食品机械有限公司| 东莞市泽源机械有限公司| 常州起重机械有限公司| 常州昊博机械有限公司| 上海东芝机械有限公司| 浙江云广机械制造有限公司| 山东泗水泰峰面粉机械有限公司| 泉州市机械有限公司| 武安市裕华钢铁有限公司| 德州机械制造有限公司| 上海紫宏机械有限公司| 洛阳塑电机械有限公司| 南京海威机械有限公司| 无锡杨佳机械有限公司| 苏州百勤精密机械有限公司| 上海鹰宏机械有限公司| 广西五丰机械有限公司| 浙江云广机械制造有限公司| 宁江精密机械有限公司| 云南昆鼎机械设备有限公司| 唐山鑫鑫钢铁有限公司| 南兴木工机械有限公司| 天津起重设备有限公司| 兴世机械制造有限公司| 沈阳透平机械有限公司| 郑州市鑫宇机械制造有限公司| 四川机械设备有限公司| 南京机械设备有限公司| 泸州长江工程机械成套有限公司| 南通友德机械有限公司| 东莞市从创机械有限公司| 宁波传动机械有限公司| 宁波星箭航天机械有限公司| 湖南申德钢铁有限公司| 大连亨益机械有限公司| 湖北 机械制造有限公司| 福宁船舶重工有限公司| 北京建筑机械有限公司| 许昌智工机械制造有限公司| 潍坊广德机械有限公司| 机械设备制造有限公司| 宁波宁塑机械有限公司| 沈阳盈好机械有限公司| 唐山唐银钢铁有限公司| 郑州 机械有限公司| 广东巨风机械制造有限公司| 上海航发机械有限公司| 河北普阳钢铁有限公司| 洛阳隆中重工机械有限公司| 哈尔滨纳诺机械设备有限公司| 成都瑞迪机械实业有限公司| 江阴机械制造有限公司| 山西高义钢铁有限公司| 河南世博机械工程有限公司| 徐州川一工程机械有限公司| 上海映易包装机械设备有限公司| 江阴中南重工有限公司| 临沂盛德机械有限公司| 山东明天机械有限公司| 勤美达精密机械有限公司| 成都蓉诚机械设备有限公司| 长沙机械与制造有限公司| 上海尼尔机械制造有限公司| 高博起重设备有限公司| 福建烟草机械有限公司| 吉林大华机械制造有限公司| 济南机械设备有限公司| 东莞市印刷机械有限公司| 绍兴 机械有限公司| 大京机械山东有限公司| 台正精密机械有限公司| 常州杰和机械有限公司| 三国精密机械有限公司| 南通佳宝机械有限公司| 扬州市机械制造有限公司| 科尼乐机械设备有限公司| 宁波钢铁有限公司地址| 恒天九五重工有限公司| 山东通佳机械有限公司| 余姚市机械有限公司| 玉环县三和机械制造有限公司 | 同鼎机械设备有限公司| 四川川宏机械有限公司| 江阴起重机械有限公司| 浙江麒龙起重机械有限公司 | 济南液压机械有限公司| 南通 机械有限公司| 江阴市永昌药化机械有限公司| 江苏博森机械制造有限公司| 重庆万凯机械有限公司| 青岛新东机械有限公司| 常州市良久机械制造有限公司 | 常州汤姆包装机械有限公司| 浙江珠峰机械有限公司| 矿山起重机有限公司| 上海创灵包装机械制造有限公司 | 长沙宏银机械有限公司| 淄博联泰机械有限公司| 厦门东亚机械有限公司| 西安星火包装机械有限公司| 安徽威萨重工机械有限公司| 昆山合济机械有限公司| 宁波市鸿博机械制造有限公司| 佛山新元机械有限公司| 上海嘉峥机械有限公司| 广州起航贸易有限公司| 玉环双友机械有限公司| 北京航天振邦精密机械有限公司 | 广州闽欣机械设备有限公司| 山东博杰重型工程机械有限公司| 江苏申特钢铁有限公司| 成都精密机械有限公司| 中欣机械厦门有限公司| 浙江小伦制药机械有限公司| 威图电子机械技术上海有限公司| 徐州明文机械有限公司| 河源德润钢铁有限公司| 武汉臻尚机械设备有限公司| 曲阜天阳机械有限公司| 深圳创世纪机械有限公司| 天津艾尔特精密机械有限公司| 上海杉野机械有限公司| 上海 钢铁物资有限公司| 河南三星机械有限公司| 上海华迪机械有限公司| 天津市仁翼钢铁有限公司| 江苏新美星包装机械有限公司| 深圳市印刷机械有限公司| 诸城市放心食品机械有限公司| 上海东蒙路桥机械有限公司| 上海市机械有限公司| 邦贝液压机械有限公司| 建湖县液压机械有限公司| 淄博推进化工机械有限公司| 兴澄特种钢铁有限公司| 江西平起实业有限公司| 东莞自动化机械有限公司| 快克数控机械有限公司| 浙江中意机械有限公司| 苏州 精密机械有限公司| 江苏桂铭机械有限公司| 苏州 工业机械有限公司| 杭州旭众机械设备有限公司| 陕西机械设备有限公司| 苏州斗山工程机械有限公司| 机械化工程有限公司| 上海捷舟工程机械有限公司| 海安机械制造有限公司| 佛山新元机械有限公司| 苏州起重机械有限公司| 广州市德晟机械有限公司 | 浙江万通重工有限公司| 杭州杭奥机械有限公司| 东莞市金拓机械有限公司| 传动机械设备有限公司| 新进精密机械苏州有限公司 | 江苏华雕机械有限公司| 江苏化工机械有限公司| 重庆墨龙机械有限公司| 新乡市中轻机械有限公司| 罗源闽光钢铁有限公司| 上海山威路桥机械有限公司 | 青岛鳌福机械有限公司| 卡骏机械设备有限公司| 大连地拓重工有限公司| 台州启运机械有限公司| 上海中造机械有限公司| 宝德机械国际有限公司| 上海斯特克沃森重工设备有限公司 | 江苏竣业过程机械设备有限公司| 小森机械南通有限公司| 武汉贝瑞克机械制造有限公司| 上海洋邦机械设备有限公司| 东莞市沃德精密机械有限公司| 泰安机械有限公司招聘| 洛阳卡瑞起重设备有限公司| 温岭林大机械有限公司| 张家港海狮洗涤机械有限公司| 建荣精密机械有限公司| 密机械(西安)有限公司| 普惠环保机械有限公司| 昆明远桥机械有限公司| 大连 橡塑机械有限公司| 诚辉机械制造有限公司| 江阴市中立机械工业有限公司| 温州市机械有限公司| 杭州千和精密机械有限公司| 金纬机械溧阳有限公司| 青岛谊金华塑料机械有限公司| 福建三宝钢铁有限公司| 河北神耕机械有限公司| 厦门 机械有限公司| 道依茨法尔机械有限公司| 河南龙昌机械有限公司| 苏州市星光精密机械有限公司 | 浙江兄弟包装机械有限公司| 木业有限公司起名大全| 江苏包装机械有限公司| 大连连美机械有限公司| 江西四通重工机械有限公司| 天津市天重江天重工有限公司| 济宁山矿机械有限公司| 洛阳鹏起实业有限公司| 汇大机械制造有限公司| 江西萍乡钢铁有限公司| 中信重工机器人有限公司| 东莞市大机械有限公司| 黎城太行钢铁有限公司| 昆山富邦机械有限公司| 上海奕晟矿山机械有限公司 | 广州晶冠机械有限公司| 青岛一津机械有限公司| 佛山市鹏轩机械制造有限公司| 上海机械制造有限公司| 上海陆达包装机械制造有限公司| 苏州一工机械有限公司| 山东祥远机械有限公司| 苏州伟鼎机械设备有限公司 | 扬州海沃机械有限公司| 广东南牧机械设备有限公司| 武汉纵能机械制造有限公司| 上海天勇机械设备有限公司 | 北京盛美食品机械有限公司| 深圳市 机械有限公司| 新疆昆仑钢铁有限公司| 广东正力精密机械有限公司| 旺磐精密机械有限公司| 营口京华钢铁有限公司招聘| 爱立许机械有限公司| 长沙宏银机械有限公司| 高密永和精密机械有限公司招聘网| 江苏迪迈机械有限公司| 机械有限公司经营范围| 沈阳维用精密机械有限公司| 无锡布勒机械制造有限公司招聘| 福州 机械 有限公司| 天津 机械设备有限公司| 河南 机械制造有限公司| 上海泽泽机械有限公司| 河南工程机械有限公司| 大连塑料机械有限公司| 吉林吉钢铁有限公司| 上海旭恒精工机械制造有限公司| 潍坊山水环保机械制造有限公司| 艾瑞精密机械有限公司| 村田机械上海有限公司| 泉州明辉机械有限公司| 东莞市金拓机械有限公司| 上海中吉机械制造有限公司| 重庆德运机械制造有限公司| 北京市政中燕工程机械制造有限公司| 余姚市机械有限公司| 卓郎新疆智能机械有限公司| 湖南汇杰机械设备有限公司| 蓬莱禄昊化工机械有限公司| 诸城市天顺机械有限公司| 安徽永成电子机械技术有限公司| 杭州康发塑料机械有限公司| 江苏双轮泵业机械制造有限公司| 柳州中源机械有限公司| 苏州启点机械有限公司| 福建亿鑫钢铁有限公司| 河南万合机械有限公司| 威海化工机械有限公司| 台州 精密机械有限公司| 深圳市精密机械有限公司| 铜梁君卓机械有限公司| 襄阳亚舟重型工程机械有限公司 | 东莞高盟机械有限公司| 东莞市华森重工有限公司| 山东同力达智能机械有限公司| 湖州二轻机械有限公司| 临沂金立机械有限公司| 如东宏信机械制造有限公司| 青岛力克川液压机械有限公司| 河北普阳钢铁有限公司| 武汉环卫机械有限公司| 江苏百德机械有限公司| 永腾弹簧机械设备有限公司| 山东威力重工机床有限公司| 潍坊机械设备有限公司| 龙文机械设备有限公司| 瑞安市方泰机械有限公司| 鑫泰数控机械有限公司| 上海翊特机械有限公司| 抚顺起亮食品有限公司| 烟台天成机械有限公司| 上海京雅机械有限公司| 烟台 机械有限公司| 宁海奇精机械有限公司| 洛阳美卓重工机械有限公司| 国机重工洛阳有限公司| 徐州华东机械有限公司| 盐城 机械 有限公司| 曲阜兴运输送机械设备有限公司| 兰州长征机械有限公司| 东莞泽源机械有限公司| 雅康精密机械有限公司| 漳州 机械有限公司| 东方液压机械有限公司| 江阴铸造机械有限公司| 浙江安奇迪动力机械有限公司| 佛山市海之力机械有限公司| 锦州天晟重工有限公司| 永腾弹簧机械设备有限公司| 重庆比德机械有限公司| 昆山乙盛机械工业有限公司电话| 温岭永进机械有限公司| 赣州群星机械有限公司| 山东泰山机械有限公司| 杭州东田机械有限公司| 海宁弘德机械有限公司| 郑州包装机械有限公司| 上海科斯包装机械有限公司| 泰安恒大机械有限公司| 重庆华世丹机械制造有限公司| 咸阳联合机械有限公司| 昆山河海精密机械有限公司| 河北燕山钢铁有限公司| 云南机械制造有限公司| 郑州富民机械有限公司| 浙江超洋机械有限公司| 佛山市松川机械设备有限公司| 上海盟申机械设备有限公司| 杭州旭众机械设备有限公司| 郑州山川重工有限公司| 上海昊宇机械有限公司| 宁夏天地奔牛银起设备有限公司| 苏州仁成包装机械有限公司| 三鑫重工机械有限公司| 宁波久力数控机械有限公司| 吴江聚力机械有限公司| 传动机械设备有限公司| 上海昊农农业机械有限公司| 威海印刷机械有限公司| 山东精密机械有限公司| 南京远景机械有限公司| 大连 机械有限公司| 上海力净洗涤机械制造有限公司| 福建烟草机械有限公司| 养殖有限公司起名大全| 辽宁泰威机械制造有限公司| 江苏维达机械有限公司| 温州新派机械有限公司| 上海欧特莱阀门机械有限公司| 启英机械设备有限公司| 重庆洲泽机械制造有限公司| 广东力特工程机械有限公司| 常州龙鑫化工机械有限公司 | 机械化工工程有限公司| 温州力冠机械有限公司| 东莞市柯达机械有限公司| 上海嘉亿机械有限公司| 太仓精密机械有限公司| 天津国际机械阀门有限公司| 上海精工机械有限公司| 洛阳泰红农业机械有限公司| 济南 重工有限公司| 柳溪机械设备有限公司| 河北太行机械工业有限公司| 上海福源机械有限公司| 福建新源重工有限公司| 潍坊瑞发机械有限公司| 山东华屹重工有限公司| 溧阳三元钢铁有限公司| 三川德青工程机械有限公司| 江西欧克机械有限公司| 成都宏机械有限公司| 上海鼎亚精密机械设备有限公司| 蓬莱禄昊化工机械有限公司 | 佛山市海裕机械有限公司| 宁波博大机械有限公司| 亚泰重工机械有限公司| 上海精机械设备有限公司| 常熟飞龙机械有限公司| 深圳塑胶机械有限公司| 广西清隆机械制造有限公司| 南京 机械有限公司| 龙口金正机械有限公司| 济南龙安机械有限公司| 上海冠龙阀门机械有限公司| 青岛青锻锻压机械有限公司| 联征机械设备有限公司| 东营恒诚机械有限公司| 徐州世通重工机械制造有限公司| 潍坊市贝特工程机械有限公司| 浙江盛维机械有限公司| 上海松川远亿机械设备有限公司| 淮安华辉机械设备有限公司| 重型机械设备有限公司| 徐州二川机械有限公司| 陕西鑫钢机械有限公司| 青岛义龙包装机械有限公司| 洛阳卓格哈斯机械有限公司| 合肥大洋机械制造有限公司| 河北普阳钢铁有限公司| 杭州恒宏机械有限公司| 上海天勇机械设备有限公司| 苏州欧比特机械有限公司| 常州凯发动力机械有限公司| 无锡市巨神起重机有限公司| 浏阳 机械有限公司| 青岛软控重工有限公司| 南通昭和机械有限公司| 自动化机械 上海有限公司| 莱州华汽机械有限公司| 慈溪市宏晟机械设备有限公司| 山东鑫鑫机械有限公司| 江西中天机械有限公司| 杭州海铭钢铁有限公司| 广西机械设备有限公司| 汉威机械制造有限公司| 艾莎钢铁天津有限公司| 上海金恒机械制造有限公司| 南海区机械设备有限公司| 四川德盛钢铁有限公司| 新乡市振动机械有限公司| 环保机械设备有限公司| 恒兴机械设备有限公司| 苏州五金机械有限公司| 杭州起重机械有限公司| 宁波博纳机械有限公司| 佛山市海裕机械有限公司| 邯郸海拓机械有限公司| 江苏凯凯机械有限公司| 深圳市环球同创机械有限公司| 重庆精密机械有限公司| 莱州市华弘机械有限公司| 金纬机械常州有限公司| 安丘机械制造有限公司| 昆山塑料机械有限公司| 山东明宇重工机械有限公司| 洛阳奥图机械设备有限公司| 瀚乐电子机械有限公司| 中山市凌宇机械有限公司| 上海与鑫机械有限公司| 金凯达机械有限公司| 无锡塑机械有限公司| 宁波久力数控机械有限公司| 诸城市美川机械有限公司| 五谷酿机械有限公司| 宝钢湛江钢铁有限公司| 富杰精密机械有限公司| 新疆 机械有限公司| 盐城液压机械有限公司| 杭州精工机械有限公司| 大连机械设备有限公司| 南通牧野机械有限公司| 上海新沪机械有限公司| 杭州中力机械有限公司| 深圳市高士达精密机械有限公司| 昆山硕杰机械有限公司| 郑州市机械有限公司| 合肥工程机械有限公司| 山东塑机械有限公司| 南京钢铁联合有限公司| 山东明宇重工机械有限公司| 广东美特机械有限公司| 青岛新型建设机械有限公司| 上海一达机械有限公司| 瑞安市创博机械有限公司| 宁波北仑机械有限公司| 如东宏信机械制造有限公司 | 新乡市新久振动机械有限公司 | 山东威海机械有限公司| 浙江瑞志机械有限公司| 东莞市千岛机械制造有限公司| 辛集市澳森钢铁有限公司| 浙江明天机械有限公司| 广东达诚机械有限公司| 靖江市机械制造有限公司| 北京液压机械有限公司| 柳州商泰机械有限公司| 广西玉柴动力机械有限公司| 立信染整机械深圳有限公司| 华菱涟源钢铁有限公司| 唐山利军机械有限公司| 安丰钢铁有限公司地址| 广东韶关钢铁有限公司| 上海机械设备有限公司| 广州普耐柯数控机械有限公司 | 青岛鳌福机械有限公司| 章丘市宇龙机械有限公司| 大连意美机械有限公司| 铜陵富鑫钢铁有限公司| 广东达诚机械有限公司| 杭州德工机械有限公司| 杭重工程机械有限公司| 浙江海重重工有限公司| 上海二和机械有限公司| 宁波奥晟机械有限公司| 江苏鼎盛重工有限公司| 郑州宇通重工有限公司| 武汉东泰盛机械有限公司| 山东威宝机械有限公司| 江苏甲钢钢铁有限公司| 唐山唐银钢铁有限公司| 江阴科盛机械有限公司| 上海机械设备有限公司| 泰安恒大机械有限公司| 江苏中科机械有限公司| 广州盛广誉机械设备有限公司 | 山东岳工机械有限公司| 上饶中材机械有限公司| 浙江名博机械有限公司| 海德机械设备有限公司| 太仓倍加机械有限公司| 阜新恒泰机械有限公司| 郑州双合机械有限公司| 常州制药机械有限公司| 华电重工机械有限公司| 江阴 机械制造有限公司| 荏原机械烟台有限公司| 济南天助升降机械有限公司| 山东欣弘发机械有限公司| 武汉贝瑞克机械制造有限公司| 莆田 机械有限公司| 唐山佳鑫机械配件有限公司| 食品机械制造有限公司| 昆成机械昆山有限公司| 东莞市亚龙玻璃机械有限公司| 常州久压久机械制造有限公司 | 宁波华热机械制造有限公司| 江西机械设备有限公司| 台州路桥机械有限公司| 上海宇减传动机械有限公司| 山东大丰机械有限公司| 宁波海雄塑料机械有限公司| 鞍山机械重工有限公司| 咸阳经纬纺织机械有限公司| 无锡马牌机械有限公司| 浙江宇丰机械有限公司| 成都弘邦机械有限公司| 南京赛达机械制造有限公司| 苏州机械制造有限公司| 汕头机械有限公司招聘| 艾珍机械设备制造有限公司| 苏州原禄机械有限公司| 河北新金钢铁有限公司| 联程机械宁波有限公司| 保定东利机械制造有限公司| 安徽普源分离机械制造有限公司| 深圳市塑胶机械有限公司| 东莞市力华机械设备有限公司| 杭州中力机械设备有限公司 | 江阴机械制造有限公司怎么样| 新马木工机械有限公司| 上海建冶重工机械有限公司| 秦皇岛机械有限公司| 广州汉达机械有限公司| 惠州德钢机械有限公司| 徐州荣阳钢铁有限公司| 成都弘林机械有限公司| 江苏昆仑钢铁有限公司| 输送机械制造有限公司| 恩比尔(厦门)机械制造有限公司 | 上海永策机械设备有限公司| 宁波隆源精密机械有限公司| 温州华珍机械有限公司| 同鼎机械设备有限公司| 山东诸城机械有限公司| 青岛永正化工机械有限公司| 郑州沃尔德机械制造有限公司 | 卡骏机械设备有限公司| 石家庄博锐食品机械有限公司| 湖南卓迪机械有限公司| 乐陵双鹤机械制造有限公司| 上海明硕机械有限公司| 南通中远重工有限公司| 上海赛峰包装机械设备有限公司 | 广东恒联食品机械有限公司| 浙江东雄重工有限公司| 河北圣和农业机械有限公司| 东莞市卓越机械有限公司招聘| 浙江亿鹏机械有限公司| 扬州 机械 有限公司| 苏州 精密机械有限公司| 才美机械制造(上海)有限公司| 瑞达机械制造有限公司| 台州启运机械有限公司| 江苏钢锐精密机械有限公司| 济南农沃机械有限公司| 南通虹波机械有限公司| 建筑工程有限公司起名| 无锡机械设备有限公司| 新乡市矿山起重机械有限公司| 食品机械制造有限公司| 新乡黄氏食品机械有限公司| 众工机械机械有限公司| 山东临工工程机械有限公司招聘| 中车南口机械有限公司| 大连德机械有限公司| 诸城市金祥机械有限公司| 大连 起 有限公司|