docker 修改挂载宿主机上的文件

2021-05-11  本文已影响0人  天马行空爱做梦

docker -v host_file:container_file
docker在把宿主机上的文件挂载到容器上之后。

理论上,修改了宿主机上的文件之后,会自动同步到容器中。但是实际上,却不是,这是因为Linux系统内部不使用文件名,而是使用inode号码识别文件。对于系统来说文件名只是inode号码便于识别的不同的文件。

在linux中vi or vim 编辑文件之后,文件对应的 inode值就会发生改变哦。所以文件需要重新挂载到容器中,或者指令reload一下

查看文件的inode指令:

ls -i file   # 直接返回带个
或者
stat file 

具体示例如下:
root@eb5d85b29a05:/usr/local/apache2/logs# stat httpd.pid
  File: httpd.pid
  Size: 2           Blocks: 8          IO Block: 4096   regular file
Device: a5h/165d    Inode: 2234760     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2021-05-10 10:19:55.908906000 +0000
Modify: 2021-05-10 10:19:55.908906000 +0000
Change: 2021-05-10 10:19:55.908906000 +0000
 Birth: -
root@eb5d85b29a05:/usr/local/apache2/logs# ls -i httpd.pid
2234760 httpd.pid
 docker run -it -d -p 80:80  --name datahttpd -v /data/:/usr/local/apache2/htdocs/ httpd

-i 交互
-t 控制台
-d 后台运行
-p 本机端口:映射为本docker映像的端口
--name 为docker容器起的名称
-v 本机路径:映射为本docker映像的路径


docker镜像移除操作:
rootdeMacBook-Pro:Desktop roothuang$ docker images httpd
REPOSITORY   TAG       IMAGE ID       CREATED      SIZE
httpd        2.4       45561c1ef88a   7 days ago   138MB
httpd        2.4.47    45561c1ef88a   7 days ago   138MB
httpd        latest    45561c1ef88a   7 days ago   138MB
rootdeMacBook-Pro:Desktop roothuang$ docker rmi httpd:2.4.47
Untagged: httpd:2.4.47

rootdeMacBook-Pro:Desktop roothuang$ docker images httpd
REPOSITORY   TAG       IMAGE ID       CREATED      SIZE
httpd        2.4       45561c1ef88a   7 days ago   138MB
httpd        latest    45561c1ef88a   7 days ago   138MB
rootdeMacBook-Pro:Desktop roothuang$

另外还可以通过inode来查找对应文件,比如:
[root@hostserver data]# find ./* -inum 541898404
./flink.jar

上一篇 下一篇

猜你喜欢

热点阅读