docker使用笔记

一、安装docker

https://docs.docker.com/engine/install/ubuntu/,按照官网命令一步步来即可。

添加当前用户到docker用户组,后面运行docker的时候前面不需要加sudo命令:https://www.cnblogs.com/fireblackman/p/16054371.html

  • 查看自己当前有哪些docker镜像:

    sudo docker images
    

二、拉取ubunutu18+ros-melodic镜像

https://www.zhihu.com/tardis/bd/art/552273212?source_id=1001,这个是ubuntu20的环境,而自己想用的是ubuntu18的环境,所以有些地方稍微有点不一样。

https://www.jianshu.com/p/858df734171f,这个是上面那个博客的参考博客。

  • 拉取环境:

    docker pull tiryoh/ros-melodic-desktop
    
  • 进入docker,并运行roscore测试

    docker run -it tiryoh/ros-melodic-desktop bash
    roscore
    
  • 在宿主机内打开xhost:

    xhost +
    

    如果成功打开,会显示:

    access control disabled, clients can connect from any host
    
  • 准备运行rviz测试,先关闭上面的docker,重新打开测试

    docker run -it \
        --env="DISPLAY" \
        --env="QT_X11_NO_MITSHM=1" \
        --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" \
        tiryoh/ros-melodic-desktop \
        /bin/bash
    

    进入docker后,运行运行roscore

    roscore
    
  • 宿主机新开终端,再次进入docker,并运行turtlesim节点

    ①先查看之前新建的容器名称
    docker ps --all
    ②进入容器中
    docker exec -it /bin/bash
    ③运行turtlesim_node
    source /opt/ros/kinetic/setup.bash
    rosrun turtlesim turtlesim_node

    sudo xhost +local:
    sudo docker run -it --device=/dev/dri --group-add video --volume=/tmp/.X11-unix:/tmp/.X11-unix --env=“DISPLAY=$DISPLAY” --name=rocker tiryoh/ros-melodic-desktop /bin/bash

docker pull tiryoh/ros-desktop-vnc

docker pull paopaorobot/ros-vnc:melodic

sudo docker run -it -v /mnt/F/workbag:/data --device=/dev/dri --group-add video --volume=/tmp/.X11-unix:/tmp/.X11-unix  --env="DISPLAY=$DISPLAY" --env="QT_X11_NO_MITSHM=1" tiryoh/ros-melodic-desktop  /bin/bash
  • 删除所有退出的容器(不是镜像)

    docker container prune
    

    docker删除单个容器

    docker rm CONTAINER_ID
    
  • 首次从镜像生成容器,并且挂载目录,设置通信

    (注意这里不需要挂载目录,因为自己把docker设置好之后,就可以打包了)

    sudo docker run -it -v /home/cc/docker_catkin_ws:/home/docker_catkin_ws --net=host tiryoh/ros-melodic-desktop  /bin/bash
    
  • Docker通过shell命令获取容器Id并把结果赋值给变量

  • 开启之前存在的容器(不是镜像)

    docker start CONTAINER_ID
    

    然后进入容器

    docker exec -it CONTAINER_ID /bin/bash
    
  • 设置进入容器的用户身份、进入之后的路径:
    进入docker容器的默认目录怎么指定
    docker:指定root用户进入容器

  • 使用tmux:使用tmux进入docker容器

  • 可视化界面设置

    https://blog.csdn.net/u013013023/article/details/111475817

docker pull tiryoh/ros-desktop-vnc:noetic

3.使用脚本加速pull docker image

https://github.com/NotGlop/docker-drag

  • 从tar加载docker镜像
docker load -i xxx.tar

sudo docker run -it -v /home/cc/docker_catkin_ws:/home/docker_catkin_ws --net=host tiryoh/ros-melodic-desktop /bin/bash

sudo docker run -p 6080:80 -v /home/cc/docker_catkin_ws:/home/docker_catkin_ws --net=host --shm-size=512m tiryoh/ros-desktop-vnc:noetic

sudo docker run -p 6080:80 -v /home/cc/docker_catkin_ws:/home/docker_catkin_ws --shm-size=512m tiryoh/ros-desktop-vnc:melodic

  • docker删除镜像
# 1.先停止所有容器
docker container prune
# 2.删除镜像
docker rmi 镜像名

4.docker可视化

参考:如何可视化docker:以ROS环境为例(例如Gazebo,Rviz)

5.在服务器上部署docker

5.1.为自己添加sudo权限

参考:在 Ubuntu 中如何将用户添加到 Sudoers
首先找到一个具有sudo权限的用户,然后执行如下命令把要添加的普通用户xxx加入sudo用户组:

sudo usermod -aG sudo xxx

注意此时如果之前已经登陆了xxx这个用户的话,需要退出重新登录才能有sudo权限。使用sudo whoami命令测试,如果输出是root,则说明此时已经有了sudo权限。

你可能感兴趣的:(Linux工具操作笔记,docker,笔记,容器)