overlay更新

main
阳光少年 1 year ago
parent e75ef3198a
commit 6a58be124f

@ -142,8 +142,12 @@ fn init_container_overlay<P: AsRef<Path>>(volume_path: P, upper_path: P, merged_
let lower_dir = volume_path.as_ref().to_string_lossy().to_string(); let lower_dir = volume_path.as_ref().to_string_lossy().to_string();
let upper_dir = upper_path.as_ref().to_string_lossy().to_string(); let upper_dir = upper_path.as_ref().to_string_lossy().to_string();
let merged_dir = merged_path.as_ref().to_string_lossy().to_string(); let merged_dir = merged_path.as_ref().to_string_lossy().to_string();
// 创建overlay的工作目录
let dirs = format!("lowerdir={lower_dir},upperdir={upper_dir},workdir={merged_dir}"); let work_path = merged_path.as_ref().parent().unwrap().join("work");
let _ = create_dir(&work_path, true);
let work_dir = work_path.to_string_lossy().to_string();
let dirs = format!("lowerdir={lower_dir},upperdir={upper_dir},workdir={work_dir}");
let out = process::Command::new("mount") let out = process::Command::new("mount")
.arg("-t") .arg("-t")
.arg("overlay") .arg("overlay")
@ -181,7 +185,7 @@ fn init_container_dev<P: AsRef<Path>>(container_merged_path: P) -> Result<()> {
} }
// 执行绑定挂载 // 执行绑定挂载
mount(Some(host_dev_path.as_str()), container_dev_path.to_str().unwrap(), Some("tmpfs"), MsFlags::MS_BIND, None::<&str>)?; mount(Some(host_dev_path.as_str()), container_dev_path.to_str().unwrap(), None::<&str>, MsFlags::MS_BIND, None::<&str>)?;
} }
Ok(()) Ok(())
} }
@ -252,7 +256,7 @@ fn init_container_pivot<P: AsRef<Path>>(merged_path: P) -> Result<()> {
let pwd_str = pwd_path.to_string_lossy().to_string(); let pwd_str = pwd_path.to_string_lossy().to_string();
// 挂载bind todo // 挂载bind todo
mount(Some(pwd_str.as_str()), pwd_str.as_str(), Some("bind"), MsFlags::MS_BIND | MsFlags::MS_REC, None::<&str>)?; mount(Some(pwd_str.as_str()), pwd_str.as_str(), None::<&str>, MsFlags::MS_BIND | MsFlags::MS_REC, None::<&str>)?;
// 创建 rootfs/.pivot_root 目录用于存储 old_root // 创建 rootfs/.pivot_root 目录用于存储 old_root
let pivot_root_dir = format!("{pwd_str}/.pivot_root"); let pivot_root_dir = format!("{pwd_str}/.pivot_root");
@ -614,7 +618,7 @@ fn stop_container(containers_id: &str, is_remove: bool) -> Result<()> {
return Ok(()) return Ok(())
} }
for container_id in containers_id.split(" ") { for container_id in containers_id.split(" ") {
// 容器网络删除 // 容器网络尝试删除
remove_network(container_id); remove_network(container_id);
let container_work_path = containers_path.join(container_id); let container_work_path = containers_path.join(container_id);

@ -8,9 +8,15 @@ import os
import threading import threading
import ctypes import ctypes
print("hello", time.time()) cnt = 0
print(cnt, "hello", time.time())
while True:
cnt += 1
print(cnt, "hello", time.time())
time.sleep(0.01)
exit()
def read_memory(address): def read_memory(address):
# 创建一个足够大的缓冲区来读取内存 # 创建一个足够大的缓冲区来读取内存

Loading…
Cancel
Save