对于Docker
,我只想说早用早享受~
安装Docker
# step 1: 安装必要的一些系统工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# step 2: 安装GPG证书
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# Step 3: 写入软件源信息
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# Step 4: 更新并安装 Docker-CE
sudo apt-get -y update
sudo apt-get -y install docker-ce
# Step 5: 查看docker是否安装成功
docker version
安装共享显示接口组件
sudo apt-get install x11-xserver-utils //确保安装了x11
拉取ubuntu20镜像
docker pull shoufei/foxy:navigation2
显示GUI应用界面
xhost +
先在本机的命令窗口运行这条命令,再在docker环境里运行GUI应用。
常用的Docker 命令
创建镜像
以共享显示的方式创建容器
sudo docker run -it \
-v /etc/localtime:/etc/localtime:ro \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v /home/kevin/catkin_ws:/catkin_ws \
-e DISPLAY=unix$DISPLAY \
-e GDK_SCALE \
-e GDK_DPI_SCALE \
--name ubuntu20 \
shoufei/foxy:navigation2 /bin/bash
注意:-v /home/kevin/catkin_ws:/catkin_ws
这条语句是将本机的目录映射到docker内部。其中/home/kevin/catkin_ws
是本机目录,/catkin_ws
是映射到docker后,docker中显示的目录。在docker中访问/catkin_ws
即可访问本机的/home/kevin/catkin_ws
目录。
查看已经在运行的容器ID
//查看已经在运行的容器ID
sudo docker ps -a
启动容器
sudo docker start eb9c37626c86 #eb9c37626c86为容器的id
当启动了容器后可以用下面的命令多开容器命令窗口
sudo docker exec -it 31ced27e1684 /bin/bash #31ced27e1684是容器的id
停止容器
sudo docker stop 容器id
删除启动的容器
sudo docker rm -f cf48d1718558
删除镜像
需要先把加载了镜像的容器停止,再删除。ubuntu是镜像仓库名,latest是tag。
sudo docker rmi ubuntu:latest
commit 自己修改好的镜像
注意:启动镜像时不要加—rm选项,加了的话退出后容器就会被删掉的。
下面是一个示例:
#启动容器
sudo docker run -it \
-v /etc/localtime:/etc/localtime:ro \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v /home/kevin/catkin_ws:/catkin_ws \
-e DISPLAY=unix$DISPLAY \
-e GDK_SCALE \
-e GDK_DPI_SCALE \
--name kinetic \
osrf/ros:kinetic-desktop-full /bin/bash
#中间做了一些修改
mkdir tes
#ctrl+d退出
#commit新的修改
sudo docker commit -m "test " -a "Kevin Shou" 3f72a50a0372 kinetic:osqp
#-m 写注释
#-a 写作者
#后面加想commit的容器ID
#再后面是新镜像的命名
#修改镜像名称,需保证名称有docker仓库的名称作为前缀
sudo docker tag kinetic:osqp shoufei/kinetic:test
#shoufei/kinetic是我在dockerhub上建的仓库名称。shoufei是用户名,kinetic是仓库名,test是仓库里的tag,用于区分不同的提交(commit)。
本地登入docker
sudo docker login
#登录自己的dockerhub的账户
上传自己镜像
sudo docker push shoufei/kinetic:test
#shoufei/kinetic:test 为镜像的名称
切换用户
sudo docker logout
将当前用户加入docker群组中
这样使用docker命令时就不用每次都加sudo了
sudo usermod -aG docker $USER
查询是否已经加入docker群组
id $USER
觉得有用就点赞吧!
我是首飞,一个帮大家填坑的机器人开发攻城狮。
另外在公众号《首飞》内回复“机器人”获取精心推荐的C/C++,Python,Docker,Qt,ROS1/2等机器人行业常用技术资料。
评论(0)
您还未登录,请登录后发表或查看评论