docker基本操作
构建docker镜像(需自己写好dockerfile文件,整理相关依赖文件)
sudo nvidia-docker build -t your_docker_img:tag .
查看已有镜像
sudo docker image ls
载入一个本地文件镜像
sudo nvidia-docker load -i <镜像名称>
对镜像交互式生成容器(参考“从镜像中生成容器”)
sudo nvidia-docker run -p 5200:5000 \
--name your_container_name -it\
-v /home/usrname/dir1:/home/dockername/dir1 \
-v /home/usrname/dir2:/home/dockername/dir2 \
-v /home/usrname/dir3:/home/dockername/dir3 \
–restart=always \
your_docker_img:tag \
python manage_server.py
-p 端口映射,宿主机端口:开放的容器端口
-v 路径映射,宿主机路径:容器路径
–name 新生成的容器名称
–restart=always 开机自启
your_docker_img:tag 镜像名称
查看已有容器
sudo docker ps -a
开始及停止一个容器
开始一个容器
sudo docker start <容器id>
停止一个容器
sudo docker stop <容器id>
进入一个容器
sudo docekr exec -it <容器id> /bin/bash
删除镜像或容器
删除容器
sudo docker rm <容器id>
删除镜像
sudo dokcer rmi <镜像id>
保存镜像
sudo docker save -o your_docker_img_tag.tar your_docker_img:tag
更新容器
# 更新容器的状态设置(以关闭--restart为例)
sudo docker update --restart=no <容器名>
# 提交容器修改到镜像
sudo docker commit -m "<说明信息>" -a "<用户信息>" <容器id> <镜像名>:<Tag>
文件交互
拷贝文件到docker
sudo docker cp <文件> <容器名>:<容器中的路径>
日志查看
# 查看实时日志
sudo docker logs -f <容器id>
# 查看最新的10条日志
sudo docker logs -f --tail=10 <容器id>
问题解决
Docker build error: No left space in device
运行sudo docker build
时提示空间不足,这里需要注意docker的位置,一般是在根目录“/”下。解决方法可参考[Docker] Docker build error: No left space in device
df -h
查看磁盘空间,特别是注意根目录的空间;- 到所在目录,
du -chs *
查看占用最大的目录; - 一级一级检索,一般会发现
/var/lib/docker
目录最大,需要清理; sudo rm /var/lib/docker/* rf
删除,注意清空后所有镜像和容器都清空,有重要信息请提前备份。
Failed to register layer: …
按上述方法清理后,重新bulid提示各种no such file or directory
,参考 Docker下载镜像出现failed to register layer: symlink…问题,需要对ubuntu的docker重启。
启动docker
sudo service docker start
关闭docker
sudo service docker stop
重启docker
sudo service docker restart
DockerFile中镜像查找
<镜像名>:<Tag>