Docker简明使用指南

对于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等机器人行业常用技术资料。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

首飞爱玩机器人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值