Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tomcat手动设置-Docker_Tomcat_Docker - Fatal编程技术网

Tomcat手动设置-Docker

Tomcat手动设置-Docker,tomcat,docker,Tomcat,Docker,我已经开始学习docker,很难手动设置tomcat容器。其想法是手动创建一个图像,然后将步骤转换为docker文件。列出迄今为止执行的步骤 Using aws EC2 Centos micro instance for learning docker Docker daemon is up and running Docker usergroup has also been setup and I run docker as normal user In

我已经开始学习docker,很难手动设置tomcat容器。其想法是手动创建一个图像,然后将步骤转换为docker文件。列出迄今为止执行的步骤

     Using aws EC2 Centos micro instance for learning docker
     Docker daemon is up and running
     Docker usergroup has also been setup and I run docker as normal user
     Installed oracle JDK as below:
               wget --no-cookies --no-check-certificate --header "Cookie:\
               gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; \
               oraclelicense=accept-securebackup-cookie" \
               http://download.oracle.com/otn-pub/java/jdk/8u91-b14/jdk-8u91-linux-x64.rpm'
     Installed tomcat using yum ( Have tried manual method using the gz file also but did not help ):
               yum install tomcat.noarch tomcat-admin-webapps.noarch tomcat-webapps.noarch
     Edited "/etc/tomcat/tomcat.conf" to add /usr/java/latest as JAVA_HOME
     Committed the changes to container:
               docker commit 42b0beb497f9 $USER/tomcat_install
      docker run -d -p 8080:8080 $USER/tomcat_install /usr/sbin/tomcat start -D FOREGROUND
               Output: SHA Checksum
但容器退出,出现以下错误:

      `enter code here /usr/sbin/tomcat: line 21: .: /etc/sysconfig/: is a directory`
在相关搜索中,我发现这个错误是由于使用开放jdk而不是oracle jdk造成的。如上所述,我开始使用OracleJDK


请注意:由于我正在学习,我不想下载正式的tomcat图片并使用它,因为它太容易了。虽然为了比较,我确实下载了那张图片,但仍然无法解决这个问题。解决这个问题并拥有我自己的tomcat映像的一些建议将是非常棒的

我今天也面临着同样的问题。下面是我的发现:如果您查看/usr/sbin/tomcat,您将看到它在第21行附近需要$NAME=“tomcat”

# Get instance specific config file
if [ -r "/etc/sysconfig/${NAME}" ]; then
    . /etc/sysconfig/${NAME}
fi
这是加载/etc/sysconfig/tomcat所必需的。在第39行开始的语句中还需要$CATALINA_BASE=“/usr/share/tomcat”

    if [ "$1" = "start" ]; then
      ${JAVACMD} $JAVA_OPTS $CATALINA_OPTS \
        -classpath "$CLASSPATH" \
        -Dcatalina.base="$CATALINA_BASE" \
        -Dcatalina.home="$CATALINA_HOME" \
        -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" \
        -Djava.io.tmpdir="$CATALINA_TMPDIR" \
        -Djava.util.logging.config.file="${CATALINA_BASE}/conf/logging.properties" \
        -Djava.util.logging.manager="org.apache.juli.ClassLoaderLogManager" \
        org.apache.catalina.startup.Bootstrap start \
        >> ${CATALINA_BASE}/logs/catalina.out 2>&1 &
        if [ ! -z "$CATALINA_PID" ]; then
          echo $! > $CATALINA_PID
        fi
因此,它可以知道在哪里写入日志文件catalina.out。因此,我所做的是定义这两个变量(在Dockerfile中很容易做到)

在/etc/tomcat/tomcat.conf和thne中,我能够手动启动tomcat

[root@tomcat tomcat]# ps -ef|grep tomcat
root       352     1  8 13:09 ?        00:00:01 /usr/lib/jvm/jre/bin/java -classpath /usr/share/tomcat/bin/bootstrap.jar:/usr/share/tomcat/bin/tomcat-juli.jar:/usr/share/java/commons-daemon.jar -Dcatalina.base=/usr/share/tomcat -Dcatalina.home=/usr/share/tomcat -Djava.endorsed.dirs= -Djava.io.tmpdir=/var/cache/tomcat/temp -Djava.util.logging.config.file=/usr/share/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager org.apache.catalina.startup.Bootstrap start
root       372     1  0 13:09 ?        00:00:00 grep --color=auto tomcat
[root@tomcat tomcat]#
这是正确的方法吗?我不知道,但它是有效的


如果你好奇的话,我会把这个答案放在一个冗长的版本里。不过,我希望这封信中的内容足够了。

不知道为什么这封信被否决了?它没有显示在这里发布之前所做的任何研究吗?让我试试。我会让你知道事情的进展。
[root@tomcat tomcat]# ps -ef|grep tomcat
root       352     1  8 13:09 ?        00:00:01 /usr/lib/jvm/jre/bin/java -classpath /usr/share/tomcat/bin/bootstrap.jar:/usr/share/tomcat/bin/tomcat-juli.jar:/usr/share/java/commons-daemon.jar -Dcatalina.base=/usr/share/tomcat -Dcatalina.home=/usr/share/tomcat -Djava.endorsed.dirs= -Djava.io.tmpdir=/var/cache/tomcat/temp -Djava.util.logging.config.file=/usr/share/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager org.apache.catalina.startup.Bootstrap start
root       372     1  0 13:09 ?        00:00:00 grep --color=auto tomcat
[root@tomcat tomcat]#