docker操作命令记录

"docker 常用命令"

仓库相关

docker search KEY_WORD              # 查找镜像
docker pull REGISTRY: TAG           # 获取镜像
docker push IMAGE_NAME: IMAGE_TAG  # 推送镜像到仓库,需要先登录
docker login REGISTRY_URL           # 登录仓库
docker logout REGISTRY_URL          # 退出仓库
docker info                          # 显示Docker详细的系统信息,可查看仓库地址
docker --help                        # 显示Docker的帮助信息

容器相关

docker attach CONTAINER_ID  # 启动一个已存在的docker容器
docker stop CONTAINER_ID    # 停止docker容器
docker start CONTAINER_ID   # 启动docker容器
docker restart CONTAINER_ID # 重启docker容器
docker kill CONTAINER_ID    # 强制关闭docker容器
docker pause CONTAINER_ID   # 暂停容器
docker unpause CONTAINER_ID # 恢复暂停的容器
docker rename CONTAINER_ID  # 重新命名docker容器
docker rm CONTAINER_ID      # 删除容器
docker logs CONTAINER_ID    # 查看docker容器运行日志,确保正常运行
docker inspect CONTAINER_ID # 查看container的容器属性,比如ip等等
docker port CONTAINER_ID    # 查看container的端口映射
docker top CONTAINER_ID     # 查看容器中正在运行的进程
docker commit CONTAINER_ID NEW_IMAGE_NAME:NEW_IMAGE_TAG # 将容器保存为镜像
docker ps -a                 # 查看所有容器
docker stats                 # 查看容器的资源使用情况

镜像相关

docker images                      # 查看本地镜像
docker rmi $IMAGE_ID               # 删除本地镜像
docker inspect $IMAGE_ID           # 查看镜像详情
docker save $IMAGE_ID > 文件路径    # 保存镜像为离线文件
docker save -o 文件路径 $IMAGE_ID   # 保存镜像为离线文件
docker load < 文件路径             # 加载文件为docker镜像
docker load -i 文件路径             # 加载文件为docker镜像
docker tag IMAGE_ID NEW_IMAGE_NAME:NEW_IMAGE_TAG  # 修改镜像TAG
docker run 参数 IMAGE_ID CMD      # 运行一个镜像
docker history IMAGE_ID            # 显示镜像每层的变更内容

run命令相关

  • -d,后台运行容器, 并返回容器ID;不指定时, 启动后开始打印日志, Ctrl+C退出命令同时会关闭容器
  • -i,以交互模式运行容器, 通常与-t同时使用
  • -t,为容器重新分配一个伪输入终端, 通常与-i同时使用
  • --name container_name,设置容器名称, 不指定时随机生成
  • -h container_hostname,设置容器的主机名, 默认随机生成
  • --dns 8.8.8.8,指定容器使用的DNS服务器, 默认和宿主机一致
  • -e docker_host=172.17.0.1,设置环境变量
  • --cpuset="0-2" or --cpuset="0,1,2",绑定容器到指定CPU运行
  • -m 100M,设置容器使用内存最大值
  • --net bridge,指定容器的网络连接类型, 支持bridge/host/none/container四种类型
  • --ip 172.18.0.13,为容器指定固定IP(需要使用自定义网络none)
  • --expose 8081 --expose 8082,开放一个端口或一组端口,会覆盖镜像设置中开放的端口
  • -p [宿主机端口]:[容器内端口],宿主机到容器的端口映射,可指定宿主机的要监听的IP,默认为0.0.0.0
  • -P,注意是大写的, 宿主机随机指定一组可用的端口映射容器expose的所有端口
  • -v [宿主机目录路径]:[容器内目录路径],挂载宿主机的指定目录(或文件)到容器内的指定目录(或文件)
  • --add-host [主机名]:[IP],为容器hosts文件追加host, 默认会在hosts文件最后追加[主机名]:[容器IP]
  • --volumes-from [其他容器名],将其他容器的数据卷添加到此容器
  • --link [其他容器名]:[在该容器中的别名],添加链接到另一个容器,在本容器hosts文件中加入关联容器的记录,效果类似于--add-host
  • 使用所有GPU

docker run --gpus all nvidia/cuda:9.0-base nvidia-smi

  • 使用两个GPU

docker run --gpus 2 nvidia/cuda:9.0-base nvidia-smi

  • 指定GPU运行

docker run --gpus '"device=1,2"' nvidia/cuda:9.0-base nvidia-smi
docker run --gpus '"device=UUID-ABCDEF,1"' nvidia/cuda:9.0-base nvidia-smi

批量删除docker容器

  1. exited容器
  • docker rm $(docker ps -a -f status=exited -q)
  1. created容器
  • docker rm $(docker ps -a -f status=created -q)
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容