2017-11-28 3 views
1

私はドッカーについて新しいので、間違った考えが出てきたら、それを指摘してください。ありがとう〜エラーが発生したときにファイルをドッキング用のコンテナにコピーする方法:Nosuch container?

私が開発したWebサーバーまたは私が所属するチームを実行することを目指します。ドッカー。

1-ドッキングウィンドウの画像を取得する:

はイメージを持って、私は以下のステップを行い、それにWebファイルをコピーし、container.soを実行します。

だから、私は3つの手順を考え抜か。

私はこのようにしよう:docker pull centos、私はcentosに基づいて画像を取得することができます。ここでは、私はもちろん、CentOSのバージョンは気にしませんでしたが、バージョンは6.7です。ここで

、私はdocker imagesで画像を確認し、私はこのようにそれを見ることができます:

REPOSITORY   TAG     IMAGE ID   CREATED    SIZE 
docker.io/centos latest    d123f4e55e12  3 weeks ago   196.6 MB 

だから、私はこのステップはsuccessedと思います。

2-ローカルシステムのファイルをコンテナにコピーしてみます。

私はパスで停止:【選択

fordockerという名前のフォルダfordockerは、Webサーバーのファイルが含まれていた/竜巻、。

は、私が(ガイドに基づいて)このようなcommondsを試してみてください。

docker cp fordocker/ d123f4e55e12:/web 

しかし!ここでエラーが来る:

Error response from daemon: No such container: d123f4e55e12 

3 - 私が正常にファイルをコピーする場合、私はこのように試みることができる:docker run -d centos xxx python web.py

このステップは間違っていますか?まだ分かりません。

私は多くを検索しましたが、その現象については説明しません。

私のそばにいる誰もが、共用は成功すると思われました。

だから、ここの質問に来る:

1-私は実現可能な考え抜か方法ですか?プロフィールを通してイメージを作成する必要がありますか?

2-メソッドが実行可能な場合、エラーはどこに来ますか?私がやったことのない他のものに基づいているのでしょうか?

3方法が実現できない場合はどうすればよいですか?自分で画像を作成しますか?

おはようございます〜

答えて

3

あなたはドッカー画像とドッキング用の容器を持っています。それは違う。

イメージをプルまたはビルドします。

イメージを起動すると、イメージは実行中のコンテナになります。

イメージは実行中のコンテナではないため、イメージ内のファイルをコピーすることはできません。

あなたが何をしたい、この何場合、私は知らないが、あなたは

1))

docker run ...

2画像を起動してファイルをコピーまたは修正

docker ps

には実行中のコンテナが表示されるので、

docker cp...

この実行中のコンテナ内のファイル

3)多分あなたは、画像を変更したい場合は、変更通常

docker commit...

しかし、で、この修正された画像を保存Dockerfileこのようなコマンドで新しい画像を簡単に作成できます

docker build -t myuser/myimage:321 .

最後の点に注意してください。つまり、ローカルのDockerfileを使用していることになります。

参照してください。たとえばnginxの

https://github.com/nginxinc/docker-nginx/blob/c8bfb9b5260d4ad308deac5343b73b027f684375/mainline/stretch/Dockerfile

+0

おはようございます、私の最初の日にあなたの答えを得ることを誉めてください。まさに、私はイメージとコンテナの間で違いを取らなかった。前と同じように、私はイメージがサーバーのコンテナであると思っています。その違いは、それが自分のコンピュータにある場合です。確かに、あなたの説明の後、私は間違った方法を考えていました。手で、私はちょうどドッカーで、PythonのWebプロジェクトを展開しようとすると、ガイドは2つの方法を教えました。まず、Dcokerfile生まれ.2番目に、画像を引っ張って変更して保存してみてください。どうもありがとうございました。 – bigpang

0

ためDockerfileは私がドッキングウィンドウでPythonのWebプロジェクトを展開を目的とした、と私は考えた第1の方法は次のとおりです。コピーサーバファイルコンテナにし、それを実行しますpython ***.py

しかし、イメージとコンテナの違いはありませんでした。

また、いくつかの方法があります。

1つのDcokerfileをビルドします。このようにして、python ***.pyのような他の文字列を使わずにイメージを実行することができます。その理由は、コモンをDcokerfileに書き込むことができるからです。

2-右のPythonのバージョンを持っている画像を取得し、docker run -v $PWD/myapp:/usr/src/myapp -w /usr/src/myapp python:3.5 python helloworld.pyようにしようとしますが、コンテナにファイルをコピーする必要はありません。

すべてのメソッドは、私が習得することができた場合、私はDcokerfileを構築することを選択したのでしょうか?

+0

https://docs.docker.com/get-started/part2/#build-the-app 私はDcokerfileは、ガイドに従うと、それはsuccessed生まれ。 よかった – bigpang

関連する問題