簡體   English   中英

docker python腳本無法正確執行

[英]docker python script doesn't execute properly

當我運行容器時,我嘗試使用“ / usr / bin / python”從根目錄(“ /”)運行“ docker.py”。 我已經檢查了源映像以確保python二進制文件存在,我已將docker.py上傳到docker映像並成功使用該二進制文件運行它。 但是,當我嘗試創建映像然后運行該映像時,出現此錯誤(“ EOFError:讀取行時出現EOF”),我不知道這是什么意思或從哪里開始。 任何幫助表示贊賞。 提前致謝!

貓docker.py

#!/usr/bin/python
my_name = raw_input("Enter your name: ")
print my_name
quit()

貓Dockerfile

FROM python:2.7
ADD docker.py /docker.py
CMD ["/usr/bin/python", "/docker.py"]

碼頭工人建設。

Sending build context to Docker daemon  175.8MB
Step 1/3 : FROM python:2.7
 ---> b1d5c2d7dda8
Step 2/3 : ADD docker.py /docker.py
 ---> f55a19158773
Step 3/3 : CMD ["/usr/bin/python", "/docker.py"]
 ---> Running in b830da5a2f5b
 ---> ef5b878d203f
Removing intermediate container b830da5a2f5b
Successfully built ef5b878d203f
SECURITY WARNING: You are building a Docker image from Windows against a non-Windows Docker host. All files and directories added to build context will have '-rwxr-xr-x' permissions. It is recommended to double check and reset permissions for sensitive files and directories.

docker運行ef5b878d203f

Enter your name: Traceback (most recent call last):
  File "/docker.py", line 2, in <module>
    my_name = raw_input("Enter your name: ")
EOFError: EOF when reading a line

問題在於您的docker.py腳本需要輸入。 正如@Klaus D.所評論的那樣,對於raw_input命令,您需要位於交互式外殼中。 當您在docker容器中運行時,沒有交互式外殼,因此當您運行raw_input時,它只會意外終止該命令,因此會收到錯誤。

一旦啟動了容器,從用戶的角度來看,它就像一台小型虛擬機,與容器的唯一交互是通過在容器本身內設置的方法。 否則使用以下命令進入容器:

docker exec -it CONTAINER_HASH /bin/bash

從那里您有一個交互式外殼,如果您以這種方式登錄,則可以運行

python /docker.py

它可以像您期望的那樣工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM