Docker容器内文件拷贝

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。

这里主要介绍如何拷贝及修改Docker容器内的文件。

要想拷贝Docker内的文件,首先要知道容器ID,通过命令+容器ID对容器内的文件操作,下面是在ubuntu下的演示,Linux系统基本相似。

首先,通过下面命令查看当前运行的Docker容器列表。我们先登录到运行Docker的服务器上,然后执行下面命令:

返回结果如下

CONTAINER ID就是容器ID,对应值为 41818897daee,这里以容器41818897daee为例进行操作。

使用以下命令进入容器内。

返回示例如下

进入容器后,可以运行linux的相关命令,上图运行ls 返回目录。

退出容器命令为exit,运行exit后退回到服务器命令行,假如拷贝容器内var/log目录,命令如下:

通过上图可以看到log已经拷贝到服务器目录下,这里在root目录下,log是系统日志目录,需要改名(mv log logd)就可以通过scp拷贝本地,以便编辑,命令如下:

运行上面命令,就可以拷贝logd到本地了。

修改后文件回传到服务器及docker容器内。先通过scp 拷贝到服务器上root下,命令如下:

然后登陆到服务器上,使用下面命令拷贝到对应的容器内。

拷贝完成,文件的权限会变成只有root用可读写,需要进入容器修改文件权限,让所有用户可读,root可读写,进入容器后运行下面命令

chmod 644 -Rf log

这样修改文件就回传到容器内,并可正常访问了。

LEAVE A REPLY

游客评论不支持回复他人评论内容,如需回复他人评论内容请