这里发现一个问题,在x86-64 下打包的docker镜像,在arm架构不能用
docker pull humble容器
sudo docker pull osrf/ros:humble-desktop
使用nvidia-docker2:使用本地gpu
1.添加库: Link
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | \
sudo apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | \
sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update
新建script.sh,写入上述内容,执行sh script.sh。
2. 安装nvidia-container-runtime及查看:
sudo apt-get install -y nvidia-docker2
sudo pkill -SIGHUP dockerd
3.测试验证:(启动命令中添加参数:–runtime=nvidia):
docker run --runtime=nvidia --rm nvidia/cuda:11.0-base nvidia-smi
docker 启动容器
sudo docker run -u root --device=/dev/bus/usb:/dev/bus/usb -it -v /home/wl:/share --name wl4 osrf/ros:humble-desktop /bin/bash
完成的启动命令
新开一个终端
查看本地存在的容器:
sudo docker ps -a
启动容器:
sudo docker start
进入刚刚生成的ros2容器,假设容器id前缀是fa647741f188 :
sudo docker exec -it fa647741f188 /bin/bash
docker ubuntu 换源
使用docker cp的方式 替换掉之前的源
安装依赖库
sudo apt install libgflags-dev nlohmann-json3-dev \
ros-$ROS_DISTRO-image-transport ros-$ROS_DISTRO-image-publisher ros-$ROS_DISTRO-camera-info-manager \
ros-$ROS_DISTRO-diagnostic-updater ros-$ROS_DISTRO-diagnostic-msgs
从主机传输目录到容器
假设你有一个目录 my_folder
,需要将其传输到容器的 /app
目录中:
docker cp my_folder my_container:/app/
打包操作
sudo docker commit wl5
# 查看新的docker 镜像的id
sudo docker image list
# 重命名新的镜像的id
sudo docker tag a37ccb1273a7 humble_orrb_docker:v1
# 将docker 镜像打包
sudo docker save humble_orrb_docker:v1 >/home/wl/Desktop/humble_orrb_docker.tar
docker 导入tar包镜像
docker load -i sqlmap_docker .tar
提交做好的环境到阿里云当中
- 进入阿里云容器镜像服务
- 创建镜像仓库
- 点本地仓库 ,创建仓库
-
登录阿里云Docker Registry
$ docker login --username=临街的小孩 registry.cn-hangzhou.aliyuncs.com
用于登录的用户名为阿里云账号全名,密码为开通服务时设置的密码。
-
将镜像推送到Registry
$ docker login --username=临街的小孩 registry.cn-hangzhou.aliyuncs.com
$ docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/docer_wang/humble_orbbec:[镜像版本号]
$ docker push registry.cn-hangzhou.aliyuncs.com/docer_wang/humble_orbbec:[镜像版本号]