Docker命令
上次用docker run运行了一个容器,现在需要挂载一个远程目录。原本run的容器权限不够,docker的运行忘得差不多,需要再花时间看,因而记录些东西以备忘。
命令简要说明
docker run
将镜像部署成容器,并且启动容器。每个容器创建后长期存在,故 docker run 命令只需要在第一次使用。
常见的参数:
- -i: 以交互模式运行容器,通常与 -t 同时使用;
- -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
- -p: 在网络端口查看内容,示例:
-p 8888:8888
- -v: 挂载本地目录,示例:
-v host_abs_path:docker_abs_path
- –name ““: 设置容器名称
- –privileged: 使容器拥有更高的权限,能够看到主机上的设备,能够挂载目录,可以在docker中运行docker等。
tensorflow gpu版的docker启动示例
$ sudo nvidia-docker run –privileged -name tf -it -p 8888:8888 -v ~/Documents/Workspace:~/Desktop/Workspace tensorflow/tensorflow:1.0.1-gpu-py3 bin/bash
docker start
启动运行已存在的容器
$ sudo docker start tf-docker
docker exec
在运行的容器中执行命令
$ sudo docker exec -it tf-docker /bin/bash
docker stop
停止正在运行的容器
$ sudo docker stop tf-docker
docker rm
删除容器
$ sudo docker rm tf-docker
docker rmi
删除镜像,删除镜像之前要停止所有的容器运行。
$ docker rmi
docker commit
将容器转变为镜像
$ sudo docker commit tf-docker tf-docker-image
docker ps [-a]
查看正在运行的容器容器信息。添加 -a 选项显示所有的容器,包含运行的和停止的。
为docker增加权限
这次遇到的问题是添加权限,由于容器创建的时候权限就已经确定,要添加权限就必须重新创建容器。因而需要先生存镜像接着重新创建容器。stackoverflow链接
$ sudo docker commit old-docker docker-image
$ sudo docker run -it –privileged docker-image /bin/bash
sshfs 远程主机文件映射
挂载命令:
$ sshfs user@hostname:path mount_point
卸载命令:
$ fusermount -u mountpoint