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

发布于: 2018年 01月 18日