S-CORE Docker 环境
Step1: load them into your WSL2 environment by command:
"docker load -i <tar_file>"

docker run -it \ --name persistency_demo \ --entrypoint /bin/bash \ vsc-vsps_persistency_demo:latest
首次打开Docker镜像:
docker run -it --entrypoint /bin/bash vsc-vsps_car_window_demo:latest
# 启动已停止的容器
docker start -i car_demo
进入已运行的容器(推荐)
如果你只是想在新终端中进入同一个容器,使用 docker exec:
docker exec -it 5735c456951a /bin/bash


# 启动已停止的容器
docker start -i car_demo
在Docker中

# 使用 docker0 的 IP 作为代理
export HTTP_PROXY=http://172.17.0.1:3129
export HTTPS_PROXY=http://172.17.0.1:3129
export http_proxy=http://172.17.0.1:3129
export https_proxy=http://172.17.0.1:3129
export NO_PROXY=localhost,127.0.0.1
# 测试
curl -I https://www.baidu.com
解决方案:配置 apt 使用代理
方法1:临时配置 apt 代理(推荐)
bash
# 使用 -o 选项临时指定代理 sudo apt -o Acquire::http::Proxy="http://172.17.0.1:3129" -o Acquire::https::Proxy="http://172.17.0.1:3129" update
方法2:永久配置 apt 代理
bash
# 创建 apt 代理配置文件 echo 'Acquire::http::Proxy "http://172.17.0.1:3129"; Acquire::https::Proxy "http://172.17.0.1:3129";' | sudo tee /etc/apt/apt.conf.d/95proxies # 然后正常使用 apt sudo apt update
您当前容器正在运行,可以直接使用此命令:
# 在宿主机(不是容器内)执行 # 拷贝整个项目目录到容器的 /root 目录 docker cp /home/iiu4sgh/VSPS_GP_0.1.0 car_demo:/root/ car_demo是通过docker ps看出来的# 或者拷贝当前目录下的项目 docker cp ~/VSPS_GP_0.1.0 car_demo:/root/
拷贝完成后,进入容器即可看到项目:
docker start -i car_demo cd /root/VSPS_GP_0.1.0 bazel build //...
docker cp 常用语法
# 拷贝文件到容器 docker cp /主机/文件路径 容器名:/容器/目标路径

在 DevContainer 运行时,构建项目:
构建所有目标
bash
bazel build //...
此命令会:
-
编译所有 Rust 二进制文件(
car_window_bin、car_window_controller_bin) -
从 SCIDL 定义生成代码
-
验证配置文件
-
将日志和中间件配置复制到输出目录
-
为共享类型创建库目标
-
首次构建需要几分钟(后续构建会利用缓存,速度更快)
构建单个应用
bash
# 仅构建车窗应用 bazel build //car_window_app:car_window # 仅构建控制器应用 bazel build //car_window_controller_app:car_window_controller
验证构建成功
构建成功后,应该看到类似以下输出:
text
INFO: Build completed successfully, <n> total actions
常见构建问题
如果构建失败:
bash
# 清理构建缓存并重试 bazel clean bazel build //... # 深度清理(删除所有构建产物) bazel clean --expunge bazel build //...
运行应用
应用必须在两个独立的终端中按特定顺序运行:
终端 1:先启动控制器应用
bash
bazel run //:car_window_controller
终端 2:再启动车窗应用
bash
bazel run //:car_window
重要提示:
-
必须先启动
car_window_controller,然后再启动car_window -
两个应用必须同时运行才能正常通信
-
服务发现过程中可能会显示警告信息,这是正常现象(正在搜索服务
用 docker run -it --entrypoint /bin/bash vsc-vsps_car_window_demo:latest 启动容器后,你没有指定容器名称,所以 Docker 会随机生成一个名字(比如之前的 infallible_spence)。
当你 exit 退出后,容器会停止但没有被删除(因为没有 --rm 参数),所以可以再次进入。
步骤1:查看所有容器(包括已停止的)
docker ps -a

找到你刚才启动的容器,看 NAMES 列(比如 infallible_spence)或 CONTAINER ID。
步骤2:重新启动该容器并进入
方法1:启动并进入(推荐)
bash
docker start -i <容器名称或ID>
例如:
bash
docker start -i infallible_spence
Docker 不允许直接重命名正在运行的容器,但你的容器已经停止了,可以重命名。
重命名容器
bash
docker rename infallible_spence car_window_demo
验证重命名成功
bash
docker ps -a
现在应该看到容器名变成了 car_window_demo。
重新启动并进入容器
bash
docker start -i car_window_demo
完整操作示例
bash
# 1. 重命名 docker rename infallible_spence car_window_demo # 2. 确认 docker ps -a # 3. 启动并进入 docker start -i car_window_demo
Docker 重命名语法
bash
docker rename <旧容器名> <新容器名>
注意:
-
容器可以是运行中或停止状态
-
新名字不能与现有容器重名
-
重命名后,容器 ID 不变,只有名字改变
执行 docker rename infallible_spence car_window_demo 即可。
更多推荐
# 或者拷贝当前目录下的项目
docker cp ~/VSPS_GP_0.1.0 car_demo:/root/
所有评论(0)