gpt4 book ai didi

docker - 发生错误 :Nosuch container? 时如何将文件复制到 docker 容器

转载 作者:太空宇宙 更新时间:2023-11-03 17:14:20 26 4
gpt4 key购买 nike

刚接触docker,如果有不对的地方请指出,谢谢~

我的目标是在 docker 中运行由我或我所属的团队开发的 Web 服务器。

所以,我想到了三个步骤:

有一个图像,将网络文件复制到其中,然后运行容器。所以,我执行以下步骤:

1- 获取 docker 镜像。

我这样尝试: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

所以,我认为这一步成功了。

2-尝试将本地系统中的文件复制到容器中。

我停在路径:/tornado,其中有一个名为 fordocker 的文件夹。

fordocker 包含网络服务器文件。

我试过这样的 commonds(根据指南):

docker cp fordocker/ d123f4e55e12:/web

但是!错误来了:

Error response from daemon: No such container: d123f4e55e12

3- 如果我成功复制文件,我可以这样尝试:docker run -d centos xxx python web.py

这一步会不会报错?我还不知道。

我搜索了很多,但没有解释这个现象。

似乎每个人,除了我,使用 commond 都会成功。

那么问题来了:

1-我想出的方法可行吗?我必须通过个人资料创建图像吗?

2-如果方法可行,错误从何而来? commond cp是不是基于其他我没做过的?

3-方法不可行怎么办?自己做个图?

祝你有个美好的一天~

最佳答案

您有 docker 镜像和 docker 容器。那是不同的。

您拉取或构建镜像。

当您启动图像时,它会变成一个正在运行的容器。

镜像不是运行中的容器,因此您无法在镜像中复制文件。

我不知道这是不是你想做的,但你可以

1) 启动图像

docker 运行 ...

2) 复制或修改文件

docker ps

显示你正在运行的容器,所以你可以

docker cp...

这个正在运行的容器中的一个文件

3) 也许用

保存这个修改后的图像

docker commit...

但通常情况下,如果你想修改一个镜像,你修改Dockerfile,所以你可以很容易地用这样的命令构建一个新的镜像

docker build -t myuser/myimage:321 .

注意最后一个点,这意味着您使用本地的 Dockerfile。

例如参见 Nginx 的 Dockerfile

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

关于docker - 发生错误 :Nosuch container? 时如何将文件复制到 docker 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47528696/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com