宿主机linux与docker的文件传递

本文详细介绍了如何在宿主机Linux与Docker之间进行文件的传递,包括使用scp命令进行远程服务器的文件上传下载,以及如何在宿主机与Docker容器间复制文件,特别是针对数据库sql文件的导入操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

服务器上传、下载数据,docker数据库文件导入

一、与远程Linux服务器互传

在linux下一般用scp这个命令来通过ssh传输文件。

1、从服务器上下载文件

scp username@servername:/path/filename /var/www/local_dir(本地目录)

 # 例如 scp root@192.168.0.101:/var/www/test.txt
 # 把192.168.0.101上的/var/www/test.txt的文件下载到/var/www/local_dir(本地目录)

2、上传本地文件到服务器

scp /path/filename username@servername:/path   

# 例如scp /var/www/test.php  root@192.168.0.101:/var/www/  
# 把本机/var/www/目录下的test.php文件上传到192.168.0.101这台服务器上的/var/www/目录中

3、从服务器下载整个目录

scp -r username@servername:/var/www/remote_dir/(远程目录) /var/www/local_dir(本地目录)

# 例如:scp -r root@192.168.0.101:/var/www/test  /var/www/  

4、上传目录到服务器

scp  -r local_dir username@servername:remote_dir
# 例如:scp -r test  root@192.168.0.101:/var/www/  
# 把当前目录下的test目录上传到服务器的/var/www/ 目录

二、服务器作为宿主机与docker之间互传

数据上传到服务器上之后,将文件复制到容器,然后进入容器,进行数据库数据的更新。

1、见宿主机文件复制到docker

docker cp *.sql <容器名或id>:/root/     # 将文件导入到容器

2、只针对sql文件(进行导入操作)

mysql -uroot -p 数据库名字 < *sql;

#  sql文件的名字,要与数据库的名字一致 ("<"是导入,">"是导出数据)


# 导出数据库数据
mysqldump –uroot –p 数据库名 > ~/Desktop/备份文件.sql;
### 配置 Docker 宿主机上的 DISPLAY 变量 为了使 Docker 容器能够访问宿主机的 X11 显示服务器,需要确保宿主机已正确设置了 `DISPLAY` 环境变量。通常情况下,这个变量会被设置为指向本地显示器,例如 `:0` 或者带有 IP 地址的形式。 当在 Linux 上运行图形化应用程序时,可以通过以下命令查看当前系统的 `DISPLAY` 设置: ```bash echo $DISPLAY ``` 如果返回的结果为空,则表示未设置该环境变量;一般而言,默认值应为 `:0` 表明使用的是第一个可用的显示设备[^1]。 为了让容器内的 GUI 应用可以正常工作,还需要允许来自任何客户端的应用程序连接到 X 服务端口。这一步骤可通过执行下面这条指令完成: ```bash xhost +local:docker ``` 上述操作会授予所有名为 “docker”的用户权限去访问本机的 X server 资源。出于安全考虑,在生产环境中应当更加严格地控制哪些特定进程被授权访问 X server[^2]。 最后,在启动新的 Docker 实例之前,请确认已经安装好了必要的依赖包以便于后续的操作顺利进行。对于基于 Debian 的发行版来说,可能需要用到如下所示的一系列软件包来进行更新和安装: ```bash sudo apt-get update && sudo apt-get install -y \ software-properties-common \ libglu1-mesa-dev freeglut3-dev mesa-common-dev \ libxi-dev libxmu-dev ``` 以上步骤完成后,便可以在创建新容器的时候传递正确的 `DISPLAY` 参数以及挂载 `/tmp/.X11-unix` 目录给目标镜像了[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值