docker操作
docker基本命令
- 查看容器镜像列表 docker images
- 查看当前所有正在运行的容器 docker ps (查看所有容器,包括运行和停止的。t)
docker pull
- 将网上或者别的服务器上的docker镜像拉到本地。例如: docker pull uber/horovod:0.15.1-tf1.11.0-torch0.4.1-py3.
docker push
上传docker镜像(注意上传镜像统一格式,yq01-aip-m12-tianzhi14.yq01.baidu.com/[Name]:tagls
$ docker push yq01-aip-m12-tianzhi14.yq01.baidu.com/lvhaijun/tsm_horovod:0.15.0-tf1.11.0-torch0.4.1-py2.7建立一个带gpu驱动的容器:
- nvidia-docker run -e PASSWORD=tianzhi05 —network=host —shm-size=32g —name=haijunlv -v /home/ssd1/lvhaijun:/home/lvhaijun -it haijun_tf1.11_torch0.4_py2.7:latest /bin/bash 注意建立容器时请一定将—name 带上,用以区分创建者。无名字的/默认名字的,如果容器在被杀掉概不负责
-e:设置环境变量
—network:将容器联网
—shm-size:/dev/shm/的大小(共享内存)
—name:给容器命名
-v:将宿主机目录挂载进docker,冒号左边是Host的路径,右边是容器内的路径
-it:指示Docker分配连接到容器的伪TTY
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
最后是镜像名称:镜像版本
$docker run —runtime=nvidia —shm-size=32g —name=dingzhenkai -p 8017:8017 -v /home/dingzhenkai:/home/dingzhenkai -it registry.baidubce.com/rudder/train_basic/paddle2.1.2-gpu-cuda10.1-cudnn7:basic /bin/bash
注意建立容器时请一定将—name 带上,用以区分创建者。
退出容器: exit (杀死该容器进程) Control + p+ q (不kill 进程, 只退出当前容器,高频使用)
重新进行一个运行中的容器 docker attach CONTAINER_ID
- 从容器进程中创建一个容器进程(某进程死机后可用此方法再创建进程,查看死机进程状况) docker exec -it CONTAINER_ID bash
- 重新启动一个停止的容器 docker start CONTAINER_ID
- docker 容器删除 docker container rm CONTAINER_ID
- docker 镜像删除 docker image rm IMAGE_ID
- docker rename 重命名
- docker exec —privileged -u root -it container-id bash root权限进入容器
- docker system df -v 查看容器占用空间
- 批量静止容器删除 #删除所有未运行的容器(已经运行的删除不了,未运行的就一起被删除了) sudo docker rm $(sudo docker ps -a -q)
- docker 服务重启 service docker restart
- docker 容器保存成镜像 doker commit
new_image_name:tag - 镜像保存到本地 docker save image_name -o 本地路径/—.tar
- 镜像从本地加载 docker load -i 本地路径/—.tar
- Dead 容器删除:
$ docker rm $(docker ps —all -q -f status=dead)