如何在发生错误时将文件复制到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

https://github.com/nginxinc/docker-nginx/blob/c8bfb9b5260d4ad308deac5343b73b027f684375/mainline/stretch/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文件?