你的位置:首页 > 互联网IT
linux文件复制代码.sh,linux从一个文件夹复制在另外一个文件夹内.sh,复制文件,复制代码,复制命令
系统:linux
软件:.sh
功能:linux文件复制代码.sh
下载地址:
项目地址:
新建:fz.sh
内容如下
#!/bin/bash
# 复制A文件夹中的内容到B文件夹中
/bin/cp -rf /root/hosts/hosts /etc/
# 显示执行完成的信息
echo "脚本执行完成!"
宝塔面板添加自动运行
---------------------------------------------
linux文件复制代码.sh,linux从一个文件夹复制在另外一个文件夹内.sh
永久修改docker中hosts文件方法,Docker容器如何修改hosts
为什么直接在Docker容器内修改hosts文件,不推荐?
hosts文件其实并不是存储在Docker镜像中的,/etc/hosts, /etc/resolv.conf和/etc/hostname,是存在主机上的/var/lib/docker/containers/(docker_id)目录下,容器启动时是通过mount将这些文件挂载到容器内部的。因此如果在容器中修改这些文件,修改部分不会存在于容器的top layer,而是直接写入这3个文件中。容器重启后修改内容不存在的原因是Docker每次创建新容器时,会根据当前docker0下的所有节点的IP信息重新建立hosts文件。也就是说,你的修改会被Docker给自动覆盖掉。
如何高效的为Docker容器设置hosts?
解决方案
方法1:强制覆盖(推荐)
使用\绕过别名或直接指定完整路径:
# 方案A:禁用别名
\cp -rf /var/lib/docker/containers/hosts /var/lib/docker/containers/564022d1e3db34f1f6289a0b280e48fb1beb38232046bdff39127b0851104b40/
# 方案B:使用绝对路径
/bin/cp -rf /var/lib/docker/containers/hosts /var/lib/docker/containers/564022d1e3db34f1f6289a0b280e48fb1beb38232046bdff39127b0851104b40/
此方法直接跳过交互确认36。
方法2:使用Docker原生命令
更安全的做法是通过docker cp命令操作:
bash
Copy Code
# 宿主机文件复制到容器
docker cp /var/lib/docker/containers/hosts 564022d1e3db34f1f6289a0b280e48fb1beb38232046bdff39127b0851104b40:/hosts
此方式能保持文件属性和容器一致性12。
方法3:临时取消别名
若需频繁操作,可临时取消别名:
unalias cp # 临时生效
cp -rf /var/lib/docker/containers/hosts /var/lib/docker/containers/564022d1e3db34f1f6289a0b280e48fb1beb38232046bdff39127b0851104b40/
注意事项
?操作前备份?
建议先备份目标文件:
cp -p /var/lib/docker/containers/564022d1e3db34f1f6289a0b280e48fb1beb38232046bdff39127b0851104b40/hosts ~/hosts_backup
?容器状态检查?
若容器正在运行,修改其文件可能导致异常。建议先停止容器:
docker stop 564022d1e3db34f1f6289a0b280e48fb1beb38232046bdff39127b0851104b40
?权限问题?
若报权限错误,需使用sudo提权或检查Docker服务状态68。
参考来源:
发表评论: