在Docker容器中运行Tomcat – 容器在启动时退出

我正在学习Docker并尝试构build一个Dockerfile,它将使用docker-compose而不是docker来运行Tomcat。

Dockerfile如下:

# Base the image on tomcat FROM tomcat:7.0.82-jre7 WORKDIR /usr/local/tomcat # Install updates & commands RUN apt-get update && apt-get install -y vim # Add some pre-set files COPY tomcat-users.xml /usr/local/tomcat/conf # Run the Tomcat on port 8080 EXPOSE 8080 # Start tomcat # CMD ["bin/startup.sh", "run"] 

docker-compose.yml文件如下:

  version: '3' services: tomcat: image: tomcat:7.0 build: context: ./ dockerfile: Dockerfile ports: - 8888:8080 container_name: tomcat7 volumes: - ./tomcat7:/usr/local/tomcat:rw entrypoint: /bin/bash /usr/local/tomcat/bin/startup.sh tty: true 

tomcat7泊坞窗容器启动,但在退出模式。

任何想法如何使其运行?

容器现在已经启动,正在运行下面的configuration。 但是,当我在浏览器中运行http:// localhost:8888时,什么也不打开! Apache Tomcat没有打开

 FROM tomcat:7.0.82-jre7 RUN apt-get update && apt-get install -y vim ADD tomcat-users.xml /usr/local/tomcat/conf EXPOSE 8080 CMD chmod +x /usr/local/tomcat/bin/catalina.sh CMD ["catalina.sh", "run"] version: '3' services: tomcat: container_name: tomcat7 hostname: tomcat7 build: context: ./ dockerfile: Dockerfile args: buildno: 1 image: bhaidar/tomcat:1.0 volumes: - ./tomcat7:/usr/local/tomcat/webapps ports: - "8888:8080" tty: true 

以下是docker inspect的输出

 [ { "Id": "7f0e2e8a68774633fcaec0eec3be11052819ea42302c7f582ddaad3430b7b21c", "Created": "2017-11-17T11:27:16.9745465Z", "Path": "catalina.sh", "Args": [ "run" ], "State": { "Status": "running", "Running": true, "Paused": false, "Restarting": false, "OOMKilled": false, "Dead": false, "Pid": 31046, "ExitCode": 0, "Error": "", "StartedAt": "2017-11-17T11:27:17.5133031Z", "FinishedAt": "0001-01-01T00:00:00Z" }, "Image": "sha256:7bc0b96249dfc4e464dfa5165acfe1488c393f4ef7078ec7b1af1243309b0d8e", "ResolvConfPath": "/var/lib/docker/containers/7f0e2e8a68774633fcaec0eec3be11052819ea42302c7f582ddaad3430b7b21c/resolv.conf", "HostnamePath": "/var/lib/docker/containers/7f0e2e8a68774633fcaec0eec3be11052819ea42302c7f582ddaad3430b7b21c/hostname", "HostsPath": "/var/lib/docker/containers/7f0e2e8a68774633fcaec0eec3be11052819ea42302c7f582ddaad3430b7b21c/hosts", "LogPath": "/var/lib/docker/containers/7f0e2e8a68774633fcaec0eec3be11052819ea42302c7f582ddaad3430b7b21c/7f0e2e8a68774633fcaec0eec3be11052819ea42302c7f582ddaad3430b7b21c-json.log", "Name": "/tomcat7", "RestartCount": 0, "Driver": "overlay2", "MountLabel": "", "ProcessLabel": "", "AppArmorProfile": "", "ExecIDs": null, "HostConfig": { "Binds": [ "/D/Projects/Docker/Tomcat7/tomcat7:/usr/local/tomcat/webapps:rw" ], "ContainerIDFile": "", "LogConfig": { "Type": "json-file", "Config": {} }, "NetworkMode": "tomcat7_default", "PortBindings": { "8080/tcp": [ { "HostIp": "", "HostPort": "8888" } ] }, "RestartPolicy": { "Name": "", "MaximumRetryCount": 0 }, "AutoRemove": false, "VolumeDriver": "", "VolumesFrom": [], "CapAdd": null, "CapDrop": null, "Dns": null, "DnsOptions": null, "DnsSearch": null, "ExtraHosts": null, "GroupAdd": null, "IpcMode": "", "Cgroup": "", "Links": null, "OomScoreAdj": 0, "PidMode": "", "Privileged": false, "PublishAllPorts": false, "ReadonlyRootfs": false, "SecurityOpt": null, "UTSMode": "", "UsernsMode": "", "ShmSize": 67108864, "Runtime": "runc", "ConsoleSize": [ 0, 0 ], "Isolation": "", "CpuShares": 0, "Memory": 0, "NanoCpus": 0, "CgroupParent": "", "BlkioWeight": 0, "BlkioWeightDevice": null, "BlkioDeviceReadBps": null, "BlkioDeviceWriteBps": null, "BlkioDeviceReadIOps": null, "BlkioDeviceWriteIOps": null, "CpuPeriod": 0, "CpuQuota": 0, "CpuRealtimePeriod": 0, "CpuRealtimeRuntime": 0, "CpusetCpus": "", "CpusetMems": "", "Devices": null, "DeviceCgroupRules": null, "DiskQuota": 0, "KernelMemory": 0, "MemoryReservation": 0, "MemorySwap": 0, "MemorySwappiness": -1, "OomKillDisable": false, "PidsLimit": 0, "Ulimits": null, "CpuCount": 0, "CpuPercent": 0, "IOMaximumIOps": 0, "IOMaximumBandwidth": 0 }, "GraphDriver": { "Data": { "LowerDir": "/var/lib/docker/overlay2/8229cb53bd5cff5a40e80bce722a182127448f0887200c67dcae6d82c4185836-init/diff:/var/lib/docker/overlay2/f2c046061832f0cc1d7d120d44be9c3800eaef7f0dfe56fef029f32b4bdf0abb/diff:/var/lib/docker/overlay2/f336590a6fddd33e5fa0af1b1ae445f480b900b382df23a38801098d0663b97d/diff:/var/lib/docker/overlay2/08dc4ffa8260fe8b5fb2dcdc107b6ed8a9b37f543fc945d7eb25f2f4e5d6b89c/diff:/var/lib/docker/overlay2/fb20fa9baeabb2e500cfbf5eff265b08c4c2477f219256bf936cbdad422056b7/diff:/var/lib/docker/overlay2/3e237ad687405c9244de17b7be19584b1d8e82d7ef9f7d50871a416f6233dda4/diff:/var/lib/docker/overlay2/7e0bbbb73b5a8fcfbbb095ca7f8673ee4952c429d047720345dcee1ae37e0144/diff:/var/lib/docker/overlay2/d6353360d1fe0500f44bd046d399f39a76e16867f1ba4cde422d41eab83d7953/diff:/var/lib/docker/overlay2/becf7ed656352d2a4c1ae0fb04ac1d9ccabb5c7e2d7b9d9c0997a34c0c9a9cda/diff:/var/lib/docker/overlay2/68443913c0c91d83bdb6b40f653fab770ac9a835f6b283be265d0aee668308f2/diff:/var/lib/docker/overlay2/2b7a0e8313fd41b45de730a63c8c7cf4926564ac1de3525d53549618860e1596/diff:/var/lib/docker/overlay2/b930fbeae54c03e86ca005bb769a0b14dedc9b5b68a0c91c1ade1bb560e12aae/diff:/var/lib/docker/overlay2/2a7ef4141acc2c1288a5298a2fa532354ad1301349644c988e9ba94c42d5a028/diff:/var/lib/docker/overlay2/680958b9fc40d5b9154179b51853f167845fe1e8061fff2d9abe1ab8ed626b88/diff:/var/lib/docker/overlay2/b6d3b91daa461e3fcb9b65042e9c7c1db501928b8060b40f35a96a860619820f/diff", "MergedDir": "/var/lib/docker/overlay2/8229cb53bd5cff5a40e80bce722a182127448f0887200c67dcae6d82c4185836/merged", "UpperDir": "/var/lib/docker/overlay2/8229cb53bd5cff5a40e80bce722a182127448f0887200c67dcae6d82c4185836/diff", "WorkDir": "/var/lib/docker/overlay2/8229cb53bd5cff5a40e80bce722a182127448f0887200c67dcae6d82c4185836/work" }, "Name": "overlay2" }, "Mounts": [ { "Type": "bind", "Source": "/D/Projects/Docker/Tomcat7/tomcat7", "Destination": "/usr/local/tomcat/webapps", "Mode": "rw", "RW": true, "Propagation": "rprivate" } ], "Config": { "Hostname": "tomcat7", "Domainname": "", "User": "", "AttachStdin": false, "AttachStdout": false, "AttachStderr": false, "ExposedPorts": { "8080/tcp": {} }, "Tty": true, "OpenStdin": false, "StdinOnce": false, "Env": [ "PATH=/usr/local/tomcat/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", "LANG=C.UTF-8", "JAVA_HOME=/docker-java-home/jre", "JAVA_VERSION=7u151", "JAVA_DEBIAN_VERSION=7u151-2.6.11-1~deb8u1", "CATALINA_HOME=/usr/local/tomcat", "TOMCAT_NATIVE_LIBDIR=/usr/local/tomcat/native-jni-lib", "LD_LIBRARY_PATH=/usr/local/tomcat/native-jni-lib", "OPENSSL_VERSION=1.1.0f-3+deb9u1", "GPG_KEYS=05AB33110949707C93A279E3D3EFE6B686867BA6 07E48665A34DCAFAE522E5E6266191C37C037D42 47309207D818FFD8DCD3F83F1931D684307A10A5 541FBE7D8F78B25E055DDEE13C370389288584E7 61B832AC2F1C5A90F0F9B00A1C506407564C17A3 713DA88BE50911535FE716F5208B0AB1D63011C7 79F7026C690BAA50B92CD8B66A3AD3F4F22C4FED 9BA44C2621385CB966EBA586F72C284D731FABEE A27677289986DB50844682F8ACB77FC2E86E29AC A9C5DF4D22E99998D9875A5110C01C5A2F6059E7 DCFD35E0BF8CA7344752DE8B6FB21E8933C60243 F3A04C595DB5B6A5F1ECA43E3B7BBB100D811BBE F7DA48BB64BCB84ECBA7EE6935CD23C10D498E23", "TOMCAT_MAJOR=7", "TOMCAT_VERSION=7.0.82", "TOMCAT_SHA1=4681bfbc86bb4da76a7aabbb3c545475eb9a8075", "TOMCAT_TGZ_URLS=https://www.apache.org/dyn/closer.cgi?action=download&filename=tomcat/tomcat-7/v7.0.82/bin/apache-tomcat-7.0.82.tar.gz \thttps://www-us.apache.org/dist/tomcat/tomcat-7/v7.0.82/bin/apache-tomcat-7.0.82.tar.gz \thttps://www.apache.org/dist/tomcat/tomcat-7/v7.0.82/bin/apache-tomcat-7.0.82.tar.gz \thttps://archive.apache.org/dist/tomcat/tomcat-7/v7.0.82/bin/apache-tomcat-7.0.82.tar.gz", "TOMCAT_ASC_URLS=https://www.apache.org/dyn/closer.cgi?action=download&filename=tomcat/tomcat-7/v7.0.82/bin/apache-tomcat-7.0.82.tar.gz.asc \thttps://www-us.apache.org/dist/tomcat/tomcat-7/v7.0.82/bin/apache-tomcat-7.0.82.tar.gz.asc \thttps://www.apache.org/dist/tomcat/tomcat-7/v7.0.82/bin/apache-tomcat-7.0.82.tar.gz.asc \thttps://archive.apache.org/dist/tomcat/tomcat-7/v7.0.82/bin/apache-tomcat-7.0.82.tar.gz.asc" ], "Cmd": [ "catalina.sh", "run" ], "ArgsEscaped": true, "Image": "bhaidar/tomcat:1.0", "Volumes": { "/usr/local/tomcat/webapps": {} }, "WorkingDir": "/usr/local/tomcat", "Entrypoint": null, "OnBuild": null, "Labels": { "com.docker.compose.config-hash": "88be82c7fb32075b016cb1dd7252e7e00013739157c2b0bc46aa891c4f07cb8a", "com.docker.compose.container-number": "1", "com.docker.compose.oneoff": "False", "com.docker.compose.project": "tomcat7", "com.docker.compose.service": "tomcat", "com.docker.compose.version": "1.14.0" } }, "NetworkSettings": { "Bridge": "", "SandboxID": "caa76e390b0fc3bb8275bbc6d07658416927fc91c3d145f100c5cb5e7f34716f", "HairpinMode": false, "LinkLocalIPv6Address": "", "LinkLocalIPv6PrefixLen": 0, "Ports": { "8080/tcp": [ { "HostIp": "0.0.0.0", "HostPort": "8888" } ] }, "SandboxKey": "/var/run/docker/netns/caa76e390b0f", "SecondaryIPAddresses": null, "SecondaryIPv6Addresses": null, "EndpointID": "", "Gateway": "", "GlobalIPv6Address": "", "GlobalIPv6PrefixLen": 0, "IPAddress": "", "IPPrefixLen": 0, "IPv6Gateway": "", "MacAddress": "", "Networks": { "tomcat7_default": { "IPAMConfig": null, "Links": null, "Aliases": [ "7f0e2e8a6877", "tomcat" ], "NetworkID": "a6896161c15844ced46b3637a2363c1ce2826522cf29a15326f482aeecc132c3", "EndpointID": "bc8648bc5b32b7006214aee9d093512ffefd1c992340650d8b7976435fb60134", "Gateway": "172.19.0.1", "IPAddress": "172.19.0.2", "IPPrefixLen": 16, "IPv6Gateway": "", "GlobalIPv6Address": "", "GlobalIPv6PrefixLen": 0, "MacAddress": "02:42:ac:13:00:02", "DriverOpts": null } } } } 

]

===编辑===

其实这个问题是在volumes 。 它正在清除容器内的webapps文件夹。

所以我不得不把这些volumes设置为:

 volumes: - ./tomcat7/index.html:/usr/local/tomcat/webapps/index.html