如何在发生错误时将文件复制到docker容器:Nosuch容器?
对于docker工人我是新的,所以如果有任何错误的想法来自我,请指出。谢谢〜
我的目标是运行一个由我或者我所属的团队开发的Web服务器。
所以,我想了三个步骤:
有一个图像,将网页文件复制到它,然后运行容器。所以,我做了以下步骤:
1-获取docker形象。
我试试这样: docker pull centos
,这样我就可以得到一个基于docker pull centos
的映像了。在这里,我不在乎centos的版本,当然它的版本是6.7,或者只是最近的版本。
在这里,我通过docker images
检查docker images
,我可以看到它是这样的:
REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/centos latest d123f4e55e12 3 weeks ago 196.6 MB
所以,我认为这一步取得成功。
2-尝试将本地系统中的文件复制到容器中。
我停在path:/龙卷风,其中有一个名为fordocker的文件夹
fordocker包含Web服务器文件。
我尝试像这样(基于指南):
docker cp fordocker/ d123f4e55e12:/web
但! 这里是错误:
Error response from daemon: No such container: d123f4e55e12
3-如果我成功复制文件,我可以这样试试: docker run -d centos xxx python web.py
这一步会出错?我还不知道。
我search了很多,但不解释现象。
似乎在我旁边的每个人都用这个连续的方法。
所以,这里的问题是:
1-是我认为可行的方法吗? 我必须通过configuration文件创build图像吗?
2-如果方法可行,错误在哪里? 我还没有做的其他方面的基础呢?
3-如果方法不可行我应该怎么做?自己创build一个图像?
祝你有美好的一天〜
你有docker的图像和docker的容器。 那是不一样的
你拉或build立图像。
当你启动一个图像时,它将成为一个正在运行的容器。
图像不是正在运行的容器,因此,您将无法在图像内复制文件。
我不知道这是你想做什么,但你可以
1)发布图片
docker run ...
2)复制或修改文件
docker ps
显示你的运行容器,所以你可以
docker cp...
这个正在运行的容器中的文件
3)也许保存这个修改后的图像
docker commit...
但通常情况下,如果你想修改一个图像,你修改了Dockerfile,所以你可以用这样的命令轻松地创build一个新的图像
docker build -t myuser/myimage:321 .
注意最后一个点,这意味着你使用本地的Dockerfile。
请参阅例如Nginx的Dockerfile
我的目标是通过docker部署一个python web项目,我想到的第一个方法是:将服务器文件复制到一个容器中,并使用python ***.py
。
但是我没有得到图像和容器的区别。
另外,我还有其他一些方法:
1-build立一个Dcoker文件。 通过这种方式,我们可以像python ***.py
一样运行一个图像,因为我们可以将这个图像写入Dcoker文件。
2 – 获得一个具有正确的Python版本的图像,并尝试像docker run -v $PWD/myapp:/usr/src/myapp -w /usr/src/myapp python:3.5 python helloworld.py
,但不需要复制文件到容器。
如果我能掌握所有的方法,我会selectbuild立一个Dcoker文件?