1、docker是什么?
- 官方解释是容器,是一种轻量化的虚拟机。与virtual box等虚拟机应用相比,个人的使用体验是,更加的方便快捷,适合一个应用起一个虚拟机。
2、docker的基本概念
- images : 镜像,类似于常用的ISO文件,在docker中可以通过编写dockerfile自行构建。
- container:容器,就是一个虚拟机实例吧,可以在里面为所欲为。对的,这其实也是大多数时候我使用虚拟机的理由。
3、docker的常用命令
docker是没有图形界面的,我们需要通过在shell窗口输入命令来启动、操作、终止容器。我这里介绍我常用的几个命令,至于更的命令,欢迎分享交流啊。
- 拉镜像:容器是基于镜像构建的,在创建容器之前,我们需要从docker hub拉取镜像,命令如下:
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
这里面的tag是镜像的版本号,如果没有注明,默认拉取新的镜像。如果不清楚拉取的镜像,可以通过docker search命令查询所有相关的镜像,通过查看discription就可以知道是不是我们想要的。
- 构建容器:这一步是在上面的镜像基础上创建虚拟机,类似于虚拟机的配置过程,不过可以不注明那么多啦。简单的指令如下:
docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]
这里的OPTIONS好加上-it,不然连终端都没有。。COMMAND一般设置为bash,这是进入容器后执行的命令。另外,由于docker默认是没有界面的,然而很多时候我们还是需要的,比如ROS中的RVIZ..。那么就可以加上
-e DISPLAY=${DISPLAY} -v ${HOME}/.Xauthority:/root/.Xauthority --hostname `hostname` --net=host
在宿主机上显示啦。(ubuntu16 有效)这个设置我并不咋懂,欢迎指教~
一般这个时候就进入bash,可以愉快地操作了,用完以后,也可以用docker stop命令关闭它。下次要用它的时候,就通过docker start 加上 docker exec来启动啦。
有评论再更。。