进入服务器
ssh root@192.0.0.211
安装
docker load < bevformer_image.tar
修改镜像的REPOSITORY
和TAG
docker tag a6a4c15ca9db bevformer:1.0
其中,a6a4c15ca9db
是原来镜像的id。bevformer
是修改后的REPOSITORY
;1.0
是修改后的TAG
。
从Docker Hub上下载Image并修改Image的Repository属性
拉取容器
docker run -itd --gpus all --name bevformer-new -p 8010:22 -e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=0,1,6,7 a6a4c15ca9db
docker run -itd --gpus all --name dipg_seg -p 8010:22 -e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=0,1 964e5ce5fc84
进入容器
docker start bevformer-new
docker exec -it bevformer-new /bin/bash
封装
容器封装镜像
sudo docker commit -a "jjuv" -m "create new img" d88799f15346 bevformer:v1
Options:
-a, --author string Author (e.g., "John Hannibal Smith <hannibal@a-team.com>")
-c, --change list Apply Dockerfile instruction to the created image
-m, --message string Commit message
-p, --pause Pause container during commit (default true)
镜像导出
docker save 32112bdcb7a1 > bevformer_image.tar
服务器添加镜像
docker load < bevformer_image.tar
修改镜像的REPOSITORY
和TAG
docker tag 32112bdcb7a1 bevformer_450:1.0
生成容器
docker run 参数解释:
-d 或 --detach:在后台运行容器并返回容器ID。
-it:交互式运行容器,分配一个伪终端。
–name:为容器指定一个名称。
-p 或 --publish:将容器的端口映射到主机的端口。
-e:设置容器的环境变量。
–gpus “device=0”: 使用第一个 GPU 设备
–gpus “device=1”: 使用第二个 GPU 设备
–gpus “device=2,3”: 使用第三和第四个 GPU 设备
docker run -itd --gpus all --name bevformer-450 -p 8012:22 -e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=all 32112bdcb7a1
docker start bevformer-450
docker exec -it bevformer-450 /bin/bash
docker run -itd --gpus all --name road-extraction -p 8012:22 -e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=all f8a1d10ae3d7
docker 与 宿主机之间传送文件
1、docker容器向宿主机传送文件
格式:
docker cp container_id:<docker容器内的路径> <本地保存文件的路径>
例:
docker cp 10704c9eb7bb:/root/test.text /home/vagrant/test.txt
2、宿主机向docker容器传送文件
这里拷贝文件夹也不用cp -r,跟拷贝文件没有区别。
格式:
docker cp 本地文件的路径 container_id:<docker容器内的路径>
例:
docker cp /home/vagrant/test.txt 10704c9eb7bb:/root/test.text
docker容器中设置ros环境变量
docker容器的环境变量在/etc/bash.bashrc
,不同于常用的ubuntu中的在~/.bashrc
echo "source /opt/ros/noetic/setup.bash" >> /etc/bash.bashrc
docker容器内安装ssh
2、检查容器内部是否安装 openssh-server与openssh-client,若没安装,执行如下命令:
apt-get install openssh-server
apt-get install openssh-client
3、修改ssh配置文件以下选项:
vim /etc/ssh/sshd_config
在末尾增加如下内容(直接复制即可):
#PermitRootLogin prohibit-password # 默认打开 禁止root用户使用密码登陆,需要将其注释
RSAAuthentication yes #启用 RSA 认证
PubkeyAuthentication yes #启用公钥私钥配对认证方式
PermitRootLogin yes #允许root用户使用ssh登录
4、启动sshd服务
/etc/init.d/ssh restart