Home Php C# Sql C C++ Javascript Python Java Go Android Git Linux Asp.net Django .net Node.js Ios Xcode Cocoa Iphone Mysql Tomcat Mongodb Bash Objective-c Scala Visual-studio Apache Elasticsearch Jar Eclipse Jquery Ruby-on-rails Ruby Rubygems Android-studio Spring Lua Sqlite Emacs Ubuntu Perl Docker Swift Amazon-web-services Svn Html Ajax Xml Java-ee Maven Intellij-idea Rvm Macos Unix Css Ipad Postgresql Css3 Json Windows-server Vue.js Typescript Oracle Hibernate Internet-explorer Github Tensorflow Laravel Symfony Redis Html5 Google-app-engine Nginx Firefox Sqlalchemy Lucene Erlang Flask Vim Solr Webview Facebook Zend-framework Virtualenv Nosql Ide Twitter Safari Flutter Bundle Phonegap Centos Sphinx Actionscript Tornado Register | Login | Edit Tags | New Questions | 繁体 | 简体


10 questions online user: 19

0
votes
answers
14 views
+10

如何在Docker上構建圖像?

1

如下圖所示的圖像enter image description here如何在Docker上構建圖像?

在上面的圖片,我相信「friendlyhello」我下面這個link及截至本教程一步是圖像的名字,但是我沒能成功建立。請參閱下文。

enter image description here

所以搞什麼名堂我試過了,而不是沒有任何標題如下

分配我的目錄

docker build /Developer/Docker 

而我得到的路徑來替換firstimage一個名稱的圖像

enter image description here

我可以知道背後的原因嗎?

沙发
0
1

運行build命令時,您在命令末尾忽略.。這個路徑是包含dockerfile的目錄的路徑。

docker build -t friendlyhello . 

在這種情況下,您指定Dockerfile位於終端的當前目錄中。

+0

對不起,我剛剛對UNIX環境不熟悉,因此忽略了它。非常感謝您指出 –

板凳
0
1

您或者發佈了不完整的命令行,或者您沒有使用過。在結尾處:

docker build -t friendlyhello . 

最後點用Dockerfile標記目錄。

你可以找到一些例子here

+0

對不起,我對UNIX環境不熟悉,因此忽略了它。非常感謝您指出 –

0
votes
answers
27 views
+10

無法編輯主機中的碼頭圖像文件

1

我是新來的碼頭,我已經拉動碼頭圖像PredictionIO,我需要編輯它中的文件並重新運行,但我不能。碼頭圖像也不在我的目錄中。如何將圖像保存到我的主機並進行編輯?無法編輯主機中的碼頭圖像文件

我使用Ubuntu 17.04

謝謝:)

沙发
0
2

有3個方法問題的方法:

  1. 獲取Dockerfile並對其進行編輯,然後建立自己的形象。
  2. 從拉出的圖像運行一個容器。

    然後docker exec -it進入它並做你的修改。使用docker commit <container id> repository/imagename:tag之後,

  3. 使用綁定掛載將文件映射到主機目錄並編輯文件,這樣您甚至不需要修改圖像。

    爲了做到這一點,你需要指定安裝創建的貨櫃時:

    mkdir /path/to/host/config/folder 
    

    創建所需的文件(S),然後創建容器:

    docker run -d --name mycontainer -v /path/to/host/config/folder:/path/to/container/config/folder/ <repository>/<image>:<tag> <command> 
    

    請注意-v開關。在此之後,當您進入容器並導航至/path/to/container/config/folder/時,您將看到/path/to/container/config/folder/的內容。

+0

我更喜歡用3,我該怎麼做? – Mahshid

+0

@Mahshid查看編輯答案。 –

+0

我認爲應該有一個命令的圖像名稱,因爲我得到這個錯誤=> 「碼頭運行」需要至少1個參數。 – Mahshid

0
votes
answers
38 views
+10

從Heroku的Docker容器中訪問X-Server

0

我將一箇舊的.NET Web API應用程序移植到Docker容器中的Heroku上運行。我正在使用單色圖像。從Heroku的Docker容器中訪問X-Server

這裏是我的Dockerfile:

FROM mono:latest 
EXPOSE 5000 
ENV PORT 5000 
ADD ./ /api 
WORKDIR /api 
RUN nuget restore -NonInteractive 
RUN msbuild webapi.sln /p:Configuration=Release 
CMD mono /api/MyProject/bin/Release/MyProject.exe port:$PORT 

非常簡單,採用最新的立體圖像,複製源,恢復的NuGet軟件包,構建解決方案,並運行它。 $ PORT環境變量由Heroku設置,或者我的本地開發環境默認爲5000。

這一切都很好,除了一個特定的API控制器生成PDF報告。該報告由PdfSharp生成,它依賴於System.Drawing程序集以進行必要的渲染。但是這意味着依賴於顯示。

當我調用該控制器生成報告時,出現以下錯誤。

Could not open display (X-Server required. Check your DISPLAY environment variable). 

我需要訪問X-Server才能進行必要的渲染。我嘗試了很多東西,但總是堅持這個錯誤。

沙发
0
0

通過安裝Xvfb(虛擬幀緩衝區),一個實現X11顯示服務器協議的顯示服務器,得到它的工作。你可以看看下面更新的Dockerfile。

備註:除了顯示服務器之外,還有更多使PDFSharp在Mono上運行的問題。我還必須更新apt源並安裝Microsoft Core Fonts,因爲我生成的報告使用它們。 我也必須使用知道如何定位字體的PDFSharp的修改版本。幸運的是,這已經爲我做的:

https://github.com/daniellor/PDFsharp

相關的代碼是在這裏:

https://github.com/daniellor/PDFsharp/blob/master/src/PdfSharp/Fonts/FontLocalizator.cs

有點哈克,你可能需要修改,以滿足您的設置,但它確實工作。只需創建一個MonoRelease版本並引用該程序集,就可以開始使用了。

Dockerfile

FROM mono:latest 

# Update the sources.list for apt-get so it knows where to download the Microsoft Core fonts. 
RUN echo "deb http://gce_debian_mirror.storage.googleapis.com wheezy contrib non-free" >> /etc/apt/sources.list  
    && echo "deb http://gce_debian_mirror.storage.googleapis.com wheezy-updates contrib non-free" >> /etc/apt/sources.list  
    && echo "deb http://security.debian.org/ wheezy/updates contrib non-free" >> /etc/apt/sources.list 

# Install Xvfb and the Microsoft core fonts 
RUN apt-get update 
RUN apt-get install -y xvfb ttf-mscorefonts-installer 

# Configure Xvfb as a daemon. 
ADD xvfb.init /etc/init.d/xvfb 
RUN chmod +x /etc/init.d/xvfb 
RUN update-rc.d xvfb defaults 

EXPOSE 5000 
ENV PORT 5000 
ADD ./ /api 
WORKDIR /api 
RUN nuget restore -NonInteractive 
RUN msbuild webapi.sln /p:Configuration=Release 

# Start Xvfb and the Web Api 
CMD (service xvfb start; export DISPLAY=:10; mono /api/MyProject/bin/Release/MyProject.exe port:$PORT) 

xvfb.init

#!/bin/bash 
# 
# /etc/rc.d/init.d/xvfbd 
# 
# chkconfig: 345 95 28 
# description: Starts/Stops X Virtual Framebuffer server 
# processname: Xvfb 
# 

[ "${NETWORKING}" = "no" ] && exit 0 

PROG="/usr/bin/Xvfb" 
PROG_OPTIONS=":10 -ac" 
PROG_OUTPUT="/tmp/Xvfb.out" 

case "$1" in 
    start) 
     echo -n "Starting : X Virtual Frame Buffer " 
     $PROG $PROG_OPTIONS>>$PROG_OUTPUT 2>&1 & 
     disown -ar 
     ;; 
    stop) 
     echo -n "Shutting down : X Virtual Frame Buffer" 
     killproc $PROG 
     RETVAL=$? 
     [ $RETVAL -eq 0 ] && /bin/rm -f /var/lock/subsys/Xvfb/var/run/Xvfb.pid 
     echo 
     ;; 
    restart|reload) 
     $0 stop 
     $0 start 
     RETVAL=$? 
     ;; 
    status) 
     status Xvfb 
     RETVAL=$? 
     ;; 
    *) 
    echo $"Usage: $0 (start|stop|restart|reload|status)" 
    exit 1 
esac 

exit $RETVAL 
0
votes
answers
62 views
+10

如何將本地文件中的值讀入Docker-compose環境變量中?

0

我試圖通過在我的docker-compose.yml文件中設置環境變量將我的AWS憑證從我的本地~/.aws/credentials文件注入到Docker容器中。如何將本地文件中的值讀入Docker-compose環境變量中?

但我不知道如何從本地文件讀取docker-compose文件的憑據。我該怎麼做??

這裏是我的AWS憑據文件看起來像:

$ cat ~/.aws/credentials 
[default] 
aws_access_key_id = AK_FAKE_KEY_88RD3PNY 
aws_secret_access_key = BividQsWW_FAKE_KEY_MuB5VAAsQNJtSxQQyDY2C 

這裏是我的我的碼頭工人組成文件的相關部分的樣子:

my_service: 
    build: . 
    image: my_image 
    environment: 
     - AWS_ACCESS_KEY_ID=<What should I put here?> 
     - AWS_SECRET_ACCESS_KEY=<What should I put here?> 
+0

爲什麼不使用IAM角色? – zacdav

+0

即使我使用IAM角色,我也必須將本地的?/ .aws/cli/cache/*。json文件複製到Dockerfile中的新圖像中,對嗎?這比我想要做的更容易嗎? –

+0

正如我理解它並且已經使用(承認有限的時間),我只是做了一個IAM角色,設置了角色的實例,就是這樣。我想這是假設你在EC2上運行。配置文件採取偏好,所以我甚至沒有任何在我的EC2上,因爲他們正在干涉。 – zacdav

沙发
0
1

是否需要從你憑證文件?

您可以創建~/aws_env_creds

AWS_ACCESS_KEY_ID=AK_FAKE_KEY_88RD3PNY 
AWS_SECRET_ACCESS_KEY=BividQsWW_FAKE_KEY_MuB5VAAsQNJtSxQQyDY2C 

然後

my_service: 
    build: . 
    image: my_image 
    env_file: 
    - ~/aws_env_creds 
0
votes
answers
18 views
+10

Docker鯨魚圖標沒有出現在系統托盤中

1

我想將我的容器從Linux切換到Windows。該文件說,去繫泊托盤中的碼頭鯨圖標,並切換它。但它沒有出現在我的系統托盤中,並且我的泊塢窗正在運行。是否有切換到Windows容器Docker鯨魚圖標沒有出現在系統托盤中

我的OS任何其他方式 - 的Windows 10家庭版

沙发
0
1

下終於爲我工作:

在Windows搜索欄中
  1. 類型「泊塢窗」
  2. 右鍵 - >以管理員身份運行

學分:Unabe to see the Docker white whale Icon in system tray..

0
votes
answers
54 views
+10

泊塢窗 - 緩存掛載音量同步延遲

0

我正在使用docker撰寫本地開發環境在macOS上撰寫。我們有多個用php編寫的應用程序,並且可以與Symfony一起運行。代碼通過卷附加到容器上。與Linux主機相比,我遇到了非常差的性能問題。泊塢窗 - 緩存掛載音量同步延遲

事實證明,問題是由基於osxfs(一種共享文件系統解決方案,專門用於Mac的Docker)的掛載卷導致的。

問題是很好的解釋在這裏:https://blog.docker.com/2017/05/user-guided-caching-in-docker-for-mac/

性能大大提高,引進安裝卷的緩存模式後。但是,它允許在主機上的更新出現在容器中之前出現一些延遲。文件沒有具體說明這個延遲。你知道主機上的代碼和容器內部的代碼之間的同步有多快?

volumes: 
    - ./php_code:/var/www:cached 
沙发
0
0
  1. 使用NFS(不與高塞拉利昂工作 - more details here

泊塢窗機,NFS $ {} DOCKER_MACHINE_NAME --mount-OPTS = 「noacl,async,nolock,vers = 3,udp,noatime,actimeo = 1」

  1. 讓您PHP緩存容器內 - 例如在/tmp/app_cache/* - 或者內存/dev/shm/app_cache/*(不推薦)

要保持容器改變內部緩存中的AppKernel.php(用於Symfony的4.0 Kernel.php

...  
public function getCacheDir() 
{ 
    if ($this->environment === 'env') { 
     // Store in RAM. 
     // return '/dev/shm/symfony_docker_test/cache/'.$this->environment; 

     // Store in docker container (not docker-machine unless docker-compose volume is mounted). 
     return '/tmp/symfony_cache/cache/' . $this->environment; 
    } 

    return dirname(__DIR__).'/var/cache/'.$this->getEnvironment(); 
} 
... 

結果與解決方案提到:cached

Time taken for tests: 20.396 seconds 
Complete requests:  100 
Failed requests:  0 
Total transferred:  82700 bytes 
HTML transferred:  31900 bytes 
Requests per second: 4.90 [#/sec] (mean) 
Time per request:  203.963 [ms] (mean) 
Time per request:  203.963 [ms] (mean, across all concurrent requests) 
Transfer rate:   3.96 [Kbytes/sec] received 

結果與解決方案提到而不:cached

Time taken for tests: 18.911 seconds 
Complete requests:  100 
Failed requests:  0 
Total transferred:  82700 bytes 
HTML transferred:  31900 bytes 
Requests per second: 5.29 [#/sec] (mean) 
Time per request:  189.111 [ms] (mean) 
Time per request:  189.111 [ms] (mean, across all concurrent requests) 
Transfer rate:   4.27 [Kbytes/sec] received 
+0

選項2是優選的。關於Docker的全部觀點是在版本化的映像中包含組成應用程序的所有內容。 –

+0

感謝這個,結果非常有趣。你認爲它是用溫暖的:緩存來衡量的嗎?我將檢查我們是否可以將緩存文件夾移動到容器中。另外NFS可能會有所幫助。另一種選擇是docker-sync http://docker-sync.io/但是,問題是:使用緩存模式進行卷裝入時,容器中的更新出現在容器中之前的延遲是多少。 – Ludek

+0

@Ludek繼續玩其他解決方案。儘管我知道任何能夠顯着提高速度而沒有缺點。你注意到'':chached'會導致同步延遲。我會堅持以上這些,因爲它們不會導致任何重大問題。速度的提高對開發環境來說是非常重要的。乾杯。 –

0
votes
answers
41 views
+10

泊塢窗:電池歷史學家 - 拉訪問被拒絕或要求搬運工登錄

0

我下面https://github.com/google/battery-historian
我想我的Mac上執行以下命令:
泊塢窗:電池歷史學家 - 拉訪問被拒絕或要求搬運工登錄

$ docker run -p 5665:9999 gcr.io/android-battery-historian/stable:3.0 --port 9999 


但我得到以下錯誤:

Unable to find image 'gcr.io/android-battery-historian/stable:3.0' locally 
docker: Error response from daemon: pull access denied for gcr.io/android-battery-historian/stable, repository does not exist or may require 'docker login'. 

任何線索讚賞。

沙发
0
0

我也有類似的問題,圖片可能不在回購gcr.io/android-battery-historian/stable。

如果適合要求,請嘗試以下圖片。

docker run -d -p 9999:9999 bhaavan/battery-historian 

https://hub.docker.com/r/bhaavan/battery-historian/

+0

但這是私人管理的圖書館,不是谷歌電池歷史學家,對不對? – AnswerDroid

+0

我已經看過上面的圖片的dockerfile,https://github.com/bhaavanmerchant/battery-historian-docker/blob/master/Dockerfile –

+0

@AnswerDroid,你有沒有找到任何解決方法? – Harsh4789

0
votes
answers
32 views
+10

運行MySQL服務器的phpmyadmin在泊塢窗容器

0

我旋轉起來爲MySQL server運行MySQL服務器的phpmyadmin在泊塢窗容器

docker run --detach --name=mysql_db_server --env="MYSQL_ROOT_PASSWORD=password" mysql 

泊塢窗容器然後我跑鏈接到MySQL serverphpmyadmin另一個容器如下

docker run --name myadmin -d --link mysql_db_server:mysql -p 8080:80 phpmyadmin/phpmyadmin 

我能在http://localhost:8080上查看phpmyadmin,但我無法使用

root登錄 - - passwordadmin --- password

myphpadmin login

$docker ps -a

輸出

CONTAINER ID  IMAGE     COMMAND     CREATED    STATUS    PORTS     NAMES 
85e68b8bab30  phpmyadmin/phpmyadmin "/run.sh phpmyadmin"  3 hours ago   Up 3 hours   0.0.0.0:8080->80/tcp myadmin 
b4d130cdb230  mysql     "docker-entrypoint.s…" 3 hours ago   Up 3 hours   3306/tcp    mysql_db_server 

我在做什麼錯?

沙发
0
1

使用myadmin爲mysql

docker run --name myadmin -d --link mysql_db_server:myadmin -p 8080:80 phpmyadmin/phpmyadmin 
+0

仍然得到同樣的錯誤。 – liv2hak

+0

Docker鏈接示例https://gist.github.com/mtt2p/76b5488a07380b408ec568dc58027461 – mtt2p

+0

仍然沒有去。 docker ps -a似乎對我的眼睛是正確的 – liv2hak

0
votes
answers
25 views
+10

web服務器工作在容器但不能在Windows 10的主機上

2

我跑我的容器:web服務器工作在容器但不能在Windows 10的主機上

docker run -d -p 8000:8000 -p 9000:9000 dockerimage:tag 

然後我進入容器和火起來的網絡服務器,但它結合IPv6的.. 我可以通過取消註釋/ etc/hosts的第二行來運行它。

但即使如此,還是有一個問題:我無法通過主機上的瀏覽器訪問該頁面。從容器內

127.0.0.1:8000作品(使用curl)

127.0.0.1:8000不從主機工作。

我也嘗試過容器的IP地址。

netstat -an on the host gives me ::1 8000 and ::1 9000 . 

我能做些什麼來解決這個問題?

+0

得到使用IPCONFIG主機的IP地址,並嘗試使用它與端口 – TheGameiswar

+0

不工作,無法連接到服務器一起。 –

+0

進入控制面板 - >網絡和互聯網 - >網絡連接,找到適配器「vEthernet(DockerNAT)」,進入屬性,取消勾選IPv6框,然後重新啓動docker。 – DivXZero

沙发
0
0

爲了清楚起見,我們添加了我的評論,您需要爲docker虛擬適配器禁用IPv6,您可以在控制面板中的網絡和共享中心 - >網絡適配器(或網絡連接,根據您的控制面板視圖)

確保已選中IPv4,然後單擊確定,然後重新啓動Docker,中提琴,現在您的容器應默認爲IPv4。

enter image description here

+0

謝謝,但我仍然無法從主機訪問服務器。現在netstat報告:[:: 1]:8000 [::]:0 LISTENING。我必須重建容器嗎? –

+0

這是常見問題嗎? –

0
votes
answers
54 views
+10

通過碼頭工人在Tomcat中部署的.war - 404

0

我從搬運工運行Tomcat:通過碼頭工人在Tomcat中部署的.war - 404

docker run -it --rm -p 8888:8080 -v /Users/laura/Desktop/tomcat-users.xml:/usr/local/tomcat/conf/tomcat-users.xml:ro tomcat:8.0 

我可以訪問Tomcat管理就好了。我已將我的.war文件複製到webapps目錄,但Tomcat管理器在嘗試訪問它時給了我一個404 ......部署期間沒有錯誤。

我也曾嘗試直接將.war運行它安裝:

docker run -it --rm -p 8888:8080 -v /Users/laura/Desktop/tomcat-users.xml:/usr/local/tomcat/conf/tomcat-users.xml:ro -v /Users/laura/Desktop/glossary.war:/usr/local/tomcat/webapps/glossary.war tomcat:8.0 

用下面的輸出:

Using CATALINA_BASE: /usr/local/tomcat 
Using CATALINA_HOME: /usr/local/tomcat 
Using CATALINA_TMPDIR: /usr/local/tomcat/temp 
Using JRE_HOME:  /docker-java-home/jre 
Using CLASSPATH:  /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar 
10-Nov-2017 23:49:05.890 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version:  Apache Tomcat/8.0.47 
10-Nov-2017 23:49:05.893 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built:   Sep 29 2017 13:46:41 UTC 
10-Nov-2017 23:49:05.895 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server number:   8.0.47.0 
10-Nov-2017 23:49:05.896 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name:    Linux 
10-Nov-2017 23:49:05.897 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version:   4.9.41-moby 
10-Nov-2017 23:49:05.898 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture:   amd64 
10-Nov-2017 23:49:05.899 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home:    /usr/lib/jvm/java-7-openjdk-amd64/jre 
10-Nov-2017 23:49:05.900 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version:   1.7.0_151-b01 
10-Nov-2017 23:49:05.900 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor:   Oracle Corporation 
10-Nov-2017 23:49:05.901 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE:   /usr/local/tomcat 
10-Nov-2017 23:49:05.902 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME:   /usr/local/tomcat 
10-Nov-2017 23:49:05.904 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties 
10-Nov-2017 23:49:05.904 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager 
10-Nov-2017 23:49:05.905 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048 
10-Nov-2017 23:49:05.906 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources 
10-Nov-2017 23:49:05.906 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.endorsed.dirs=/usr/local/tomcat/endorsed 
10-Nov-2017 23:49:05.907 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/usr/local/tomcat 
10-Nov-2017 23:49:05.908 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/usr/local/tomcat 
10-Nov-2017 23:49:05.908 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/usr/local/tomcat/temp 
10-Nov-2017 23:49:05.909 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded APR based Apache Tomcat Native library 1.2.14 using APR version 1.5.1. 
10-Nov-2017 23:49:05.910 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true]. 
10-Nov-2017 23:49:05.914 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized (OpenSSL 1.1.0f 25 May 2017) 
10-Nov-2017 23:49:06.058 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-apr-8080"] 
10-Nov-2017 23:49:06.077 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["ajp-apr-8009"] 
10-Nov-2017 23:49:06.079 INFO [main] org.apache.catalina.startup.Catalina.load Initialization processed in 779 ms 
10-Nov-2017 23:49:06.163 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service Catalina 
10-Nov-2017 23:49:06.164 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/8.0.47 
10-Nov-2017 23:49:06.232 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive /usr/local/tomcat/webapps/glossary.war 
10-Nov-2017 23:49:17.411 INFO [localhost-startStop-1] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time. 
10-Nov-2017 23:49:17.533 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive /usr/local/tomcat/webapps/glossary.war has finished in 11,301 ms 
10-Nov-2017 23:49:17.536 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /usr/local/tomcat/webapps/examples 
10-Nov-2017 23:49:18.079 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /usr/local/tomcat/webapps/examples has finished in 543 ms 
10-Nov-2017 23:49:18.080 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /usr/local/tomcat/webapps/host-manager 
10-Nov-2017 23:49:18.120 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /usr/local/tomcat/webapps/host-manager has finished in 39 ms 
10-Nov-2017 23:49:18.120 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /usr/local/tomcat/webapps/manager 
10-Nov-2017 23:49:18.157 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /usr/local/tomcat/webapps/manager has finished in 37 ms 
10-Nov-2017 23:49:18.158 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /usr/local/tomcat/webapps/docs 
10-Nov-2017 23:49:18.183 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /usr/local/tomcat/webapps/docs has finished in 26 ms 
10-Nov-2017 23:49:18.183 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /usr/local/tomcat/webapps/ROOT 
10-Nov-2017 23:49:18.206 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /usr/local/tomcat/webapps/ROOT has finished in 23 ms 
10-Nov-2017 23:49:18.215 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-apr-8080"] 
10-Nov-2017 23:49:18.300 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-apr-8009"] 
10-Nov-2017 23:49:18.407 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 12327 ms 

然後我嘗試訪問它:http://localhost:8888/glossary/但它失敗404

這裏是webapp目錄的內容:

[email protected]:/usr/local/tomcat# ls -lh webapps/ 
total 147M 
drwxr-xr-x 3 root root 4.0K Nov 4 21:32 ROOT 
drwxr-xr-x 14 root root 4.0K Nov 4 21:32 docs 
drwxr-xr-x 6 root root 4.0K Nov 4 21:32 examples 
drwxr-xr-x 5 root root 4.0K Nov 10 23:05 glossary 
-rwxr-xr-x 1 root root 147M Nov 10 23:05 glossary.war 
drwxr-xr-x 5 root root 4.0K Nov 4 21:32 host-manager 
drwxr-xr-x 5 root root 4.0K Nov 4 21:32 manager 

這裏是我看到的manager404錯誤。

任何幫助將非常感謝!

PS:我也是從碼頭工人正在運行的Oracle,因爲我的web應用程序使用它: 搬運工運行--name OracleXE --shm尺寸=1克-p 1521:1521 -p 8080:8080 -v /用戶/勞拉/桌面/數據:/ u01/app/oracle/oradata -e ORACLE_ALLOW_REMOTE = true oracle /數據庫:11.2.0.2-xe

+1

也許問題來自詞彙表應用程序本身? –

+0

我想你在詞彙表應用程序有問題。它有根映射嗎?我建議你從apache下載'war'樣本並在你的tomcat實例中試用https://tomcat.apache.org/tomcat-8.0-doc/appdev/sample/ –

+0

感謝您的幫助。我在本地有Tomcat,並且能夠運行我的應用程序。這是通過碼頭使用它時,我得到的問題。我可以通過docker運行示例應用程序,而不會出現任何錯誤。我試圖通過docker運行我的應用程序時唯一改變的是數據庫連接字符串(因爲我的應用程序使用另一個容器中的Oracle),我正在更新到我的ip(而不是本地主機)。 [https://forums.docker.com/t/connecting-to-an-oracledb-in-a-docker-container-from-another-java-docker-container/13269/2] ... – user8840545

沙发
0
0

既然你有權訪問你的tomcat實例和管理器應用程序,那麼你應該能夠查看部署的應用程序,它們是否正在運行以及它們的上下文路徑。 那麼它對詞彙表有什麼意義?您是否已經部署並運行了應用程序上下文路徑/詞彙表的應用程序? 您可以通過訪問Tomcat管理應用程序

http://localhost:8080/manager/html下回答這些問題(或指定的主機和端口)

希望這有助於!

您可能嘗試的另一件事是將glossary.war重命名爲ROOT.war。這會將您的詞彙表應用程序部署爲ROOT應用程序,並且可以直接在localhost:8080下(或者運行tomcat的任何端口)訪問它。

+0

謝謝Yordan。我添加了我在管理器應用程序中看到的屏幕截圖。我可以看到我的應用程序,但試圖訪問/詞彙表給我一個404。 – user8840545

+0

那麼它說,你的應用程序已部署和運行。所以它一定是應用程序。由於我沒有看到名稱,因此我會更仔細地查看_web.xml_包含的內容,並在應用程序的Web目錄中放置默認的_index.html_文件。 –