docker简单命令的熟悉
最近想在实验室集群上配置一个目标检测算法的环境,需要在docker下配置环境,记录一下刚接触docker的一些简单命令用法,方便以后自己查看
docker命令
1.docker pull
安装好docker之后,可以去dockerhub寻找匹配的docker镜像,然后使用
docker pull命令拉取需要的镜像
$ docker pull ubuntu
2.docker images
镜像下载结束之后,可以使用docker images命令查看已有的镜像
$ docker images
3.docker run
得到镜像之后,使用docker run命令运行一个容器
docker run -it 镜像名 /bin/bash
因为实验室的集群是gpu的,一开始使用docker run发现不能使用gpu,结果踩坑了。。需要先去安装nvidia-docker,然后使用nvidia-docker run代替docker run
并且可以通过docker run -v path:path来制定目录映射,可以在冒号后面的docker路径中访问到主机目录的文件
$ nvidia-docker run -it -v /path:/path ubuntu /bin/bash
$ docker run -it ubuntu /bin/bash
4.docker start
运行一个容器之后 可以使用 docker ps -a命令查看正在运行的容器
然后使用docker start id的前四个字 就可以开始容器,再使用docker attach命令进入该容器的bash环境
docker start 容器id前四个字
$ docker ps -a
$ docker start d008
$ docker attach d008
使用docker attach方法进入容器bash会导致如果使用exit()命令从容器中退出会导致容器停止运行,可以使用docker exec命令来解决这个问题
$ docker exec -it 243c32535da7 /bin/bash
5.docker commit
可能下载的镜像里边缺少一两个需要的包,我们在docker容器里pip install之后,会发现在pycharm中配置好相应的环境是仍然不能解析到我们下载的包的,原因是pycharm会根据我们设置的docker镜像重新建立一个新的容器去运行程序,而不是在我们pip install好的容器里运行程序为了解决这个问题,我们要先退出容器的bash环境,然后把我们这个pip install了新的包的容器commit为新的镜像
$ docker commit 容器id 新镜像名
$ docker commit 39eaa5aa7332 python3.6
然后在使用docker images 命令就可以看到新的包含pip install好的包的docker镜像python3.6了。
6. docker save 和docker load
使用docker save命令可以把docker镜像保存为本地tar文件,可以传给其他的机器使用。
$ docker save -o test.tar test/ubuntu:latest
7.docker rm
删除容器:
docker rm -f 容器id
$ docker rm -f 1e560fca3906
删除镜像:
docker rmi 镜像id
$ docker rmi 1e560fca3906