安装
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
测试
sudo docker info
添加到用户组
# 添加docker用户组,一般已存在,不需要执行
sudo groupadd docker
# 将登陆用户加入到docker用户组中
sudo gpasswd -a $USER docker
# 更新用户组
newgrp docker
# 测试docker命令是否可以使用sudo正常使用
docker version
创建容器
docker run -it -v /home/sz3/ailab/:/share --name my_container scllovewkf/opencalib:latest /bin/bash
这里的
`--name my_container` 选项为创建的容器指定了名称 `my_container`。完整解释如下: - `docker run`:创建并运行一个容器。 - `-it`:以交互模式运行容器,并分配一个伪终端。 - `-v /home/sz3/ailab/:/share`:将宿主机的 `/home/sz3/ailab/` 目录挂载到容器的 `/share` 目录中。 - `--name my_container`:为容器指定名称 `my_container`。 - `scllovewkf/opencalib:latest`:要运行的 Docker 镜像。 - `/bin/bash`:在容器中启动一个 Bash 终端。
打包容器
sudo docker run -it osrf/ros:humble-desktop
注意:每运行一次该指令,就会在本地生成一个新的容器,分配一个新的容器ID
重启和关闭容器
新开一个终端
查看本地存在的容器:
sudo docker ps -a
启动容器:
sudo docker start fa647741f188
进入刚刚生成的ros2容器,假设容器id前缀是fa647741f188 :
sudo docker exec -it fa647741f188 /bin/bash
再次进入容器启动ros2
root@fa647741f188:/# ros2
bash: ros2: command not found
这是因为新终端没有自动添加环境变量,解决办法:
直接输入下面的命令追加bashrc即可
echo 'source /opt/ros/humble/setup.bash'>> ~/.bashrc
追加完成后source即可:
source ~/.bashrc
五、把建好的容器打包给其他人使用
先退出容器:exit或者ctrl + D
提交全部更改到本地容器:docker commit 【容器ID】
此时的容器会生成一个新的未命名的镜像。我们需要对它重新命名,
镜像重命名:
docker tag 0bc42f7ff218【镜像ID】 sqlmap_docker:v1【名称:版本】
镜像打包:
docker save sqlmap_docker:v1 > /root/sqlmap_docker .tar
其中/root/指定存放的路径。
打包完成可以在相应目录下看到多了一个tar包,这就是你装好环境的docker镜像。
把这个镜像的tar包发送给别人, 然后他那边导入你的镜像:
docker load -i sqlmap_docker .tar
,运行这个镜像,进入对应的容器,然后就可以在相应目录下运行你的代码了。
进入容器
sudo docker ps
sudo docker exec -it 775c7c9ee1e1 /bin/bash
sudo docker exec -it dm8_01 /bin/bash
停止和删除容器
docker stop 【id】
docker rm [id]