docker 常用方法

server/2024/11/13 9:17:39/

目录

docker参数解释

基础信息和环境变量设置

容器运行和管理相关参数

数据卷挂载

GPU 相关参数

镜像相关参数


查看现有的镜像

docker images

查看正在运行的docker

docker ps

1、docker启动停止及查看状态
启动docker:
systemctl start docker

停止docker:
systemctl stop docker

重启docker:
systemctl restart docker

查看docker状态:
systemctl status docker

开机启动:
systemctl enable docker
docker version
docker info
docker --help

2、镜像命令
查看镜像
docker images
搜索镜像
docker search 某个XXX镜像名字
下载镜像
docker pull 镜像名字[:TAG]
docker rmi 某个XXX镜像名字ID
删除镜像
删除单个
docker rmi -f 镜像ID
删除多个
docker rmi -f 镜像名1:TAG 镜像名2:TAG
删除全部
docker rmi -f $(docker images -qa)

3、容器命令
3.1 新建并启动容器
docker run [OPTIONS] IMAGE [COMMAND] [ARG…]
OPTIONS说明
OPTIONS说明(常用):有些是一个减号,有些是两个减号
–name=“容器新名字”: 为容器指定一个名称;
-d: 后台运行容器,并返回容器ID,也即启动守护式容器;
-i:以交互模式运行容器,通常与 -t 同时使用;
-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;
-P: 随机端口映射;
-p: 指定端口映射,有以下四种格式
ip:hostPort:containerPort
ip::containerPort
hostPort:containerPort
containerPort
#使用镜像centos:latest以交互模式启动一个容器,在容器内执行/bin/bash命令。
docker run -it centos /bin/bash

3.2 列出当前所有正在运行的容器
docker ps [OPTIONS]
OPTIONS说明
OPTIONS说明(常用):
-a :列出当前所有正在运行的容器+历史上运行过的
-l :显示最近创建的容器。
-n:显示最近n个创建的容器。
-q :静默模式,只显示容器编号。
–no-trunc :不截断输出。

3.3 容器启动、停止、退出、删除
退出容器,两种退出方式
exit 容器停止退出
ctrl+P+Q 容器不停止退出
启动容器
docker start 容器ID或者容器名
重启容器
docker restart 容器ID或者容器名
停止容器
docker stop 容器ID或者容器名
强制停止容器
docker kill 容器ID或者容器名
删除已停止的容器
docker rm 容器ID
一次性删除多个容器
docker rm -f $(docker ps -a -q)
docker ps -a -q | xargs docker rm

3.4 重要
启动守护式容器
docker run -d 容器名

查看容器日志
docker logs -f -t --tail 容器ID
-t 是加入时间戳
* -f 跟随最新的日志打印
* --tail 数字 显示最后多少条

查看容器内运行的进程
docker top 容器ID

查看容器内部细节
docker inspect 容器ID

进入正在运行的容器并以命令行交互
docker exec -it 容器ID bashShell
docker exec -it 1212221 /bin/bash

重新进入docker attach 容器ID
上述两个区别
attach 直接进入容器启动命令的终端,不会启动新的进程
exec 是在容器中打开新的终端,并且可以启动新的进程

从容器内拷贝文件到主机上
docker cp 容器ID:容器内路径 目的主机路径
从主机内拷贝文件到容器上
docker cp 目的主机路径 容器ID:容器内路径

docker commit提交容器副本使之成为一个新的镜像
docker commit -m=“提交的描述信息” -a=“作者” 容器ID 要创建的目标镜像名:[标签名]

保存docker镜像
docker save -o es.tar elasticsearch
导入docker镜像
docker load -i /home/es.tar

docker参数解释

NAME=split:v0.0.49.gpu docker run -e SLEEP_FOR_TEST=1 --rm --name lbg -it --network=host \ -v /shared_disk/users/liuzhichao/data:/data -v /shared_disk/:/shared_disk/ -v /mnt:/mnt --gpus '"device=7"' \ -e NVIDIA_VISIBLE_DEVICES=7 -e NVIDIA_MEM_LIMIT=12288 \ gigahubnew-cn-beijing.cr.volces.com/gigaai/algo/giga_data_platform_video_$NAME 这些参数什么意思

以下是对上述 docker run 命令中各个参数的详细解释:

基础信息和环境变量设置

  • NAME=split:v0.0.49.gpu:定义了一个名为 NAME 的环境变量,其值为 split:v0.0.49.gpu。这个变量可能在后续的容器运行过程中被引用,用于指定特定的版本或配置等信息 。
  • -e SLEEP_FOR_TEST=1:向容器内传递一个名为 SLEEP_FOR_TEST 的环境变量,并将其值设置为 1。容器内的应用程序可以读取这个环境变量来决定是否进行一些与测试相关的等待或特定操作。
  • -e NVIDIA_VISIBLE_DEVICES=7:指定容器内可见的 NVIDIA GPU 设备为设备号 7。这意味着容器中的应用程序只能访问和使用这一个指定的 GPU 设备。
  • -e NVIDIA_MEM_LIMIT=12288:设置容器可以使用的 NVIDIA GPU 内存限制为 12288,这里的单位可能是根据具体的配置或约定来确定的,比如可能是 MB 等。通过限制内存使用,可以防止容器内的应用程序过度占用 GPU 内存,影响其他应用或系统的正常运行。

容器运行和管理相关参数

  • --rm:表示在容器退出时自动删除容器。这样可以避免容器在运行完成后仍然占用系统资源,方便清理和管理。
  • --name lbg:为运行的容器指定一个名称为 lbg。通过这个名称,可以方便地对容器进行操作和管理,例如查看容器的状态、停止或重启容器等。
  • -it:表示以交互模式运行容器,并为容器分配一个伪终端。这使得用户可以在容器启动后直接与容器内的 shell 进行交互,方便进行调试、执行命令等操作。

数据卷挂载

  • -v /shared_disk/users/liuzhichao/data:/data:将宿主机上的 /shared_disk/users/liuzhichao/data 目录挂载到容器内的 /data 目录。这样,容器内的应用程序就可以访问和操作宿主机上对应目录中的数据,实现数据的共享和持久化存储。
  • -v /shared_disk/:/shared_disk/:将宿主机上的整个 /shared_disk/ 目录挂载到容器内的同名目录 /shared_disk/。类似地,这使得容器内的应用程序能够访问宿主机上该目录下的所有数据和文件。
  • -v /mnt:/mnt:将宿主机上的 /mnt 目录挂载到容器内的 /mnt 目录,实现这两个目录之间的数据共享和交互。

GPU 相关参数

  • --gpus '"device=7"':明确指定容器使用的 GPU 设备为设备号 7,这是一种更明确地指定 GPU 设备的方式,与前面的 NVIDIA_VISIBLE_DEVICES 环境变量起到类似的作用,但在某些情况下可能提供更精细的 GPU 资源分配和管理。

镜像相关参数

  • gigahubnew-cn-beijing.cr.volces.com/gigaai/algo/giga_data_platform_video_$NAME:指定要运行的 Docker 镜像的名称和路径。其中 $NAME 会被前面定义的 NAME 环境变量的值所替换,从而确定具体要运行的镜像版本,例如可能会实际运行 gigahubnew-cn-beijing.cr.volces.com/gigaai/algo/giga_data_platform_video_split:v0.0.49.gpu 这个镜像。

这些参数共同作用,使得 Docker 容器能够在特定的配置和环境下运行,并与宿主机进行有效的数据交互和资源共享,以满足特定应用程序的运行需求。


http://www.ppmy.cn/server/140787.html

相关文章

linux 内核asmlinkage关键字总结

1,看一下asmlinkage的定义 CPP_ASMLINKAGE __attribute__((regparm(0))) GCC中使用__attribute__((regparm(n)))指定最多可以使用n个寄存器(eax, edx, ecx)传递参数,n的范围是0~3,超过n时则将参数压入栈中(…

论文阅读《Structure-from-Motion Revisited》

摘要 增量式地运动结构恢复是从无序图像集合中进行三维重建的一个普遍策略。虽然增量式地重建系统在各个方面上都取得了巨大的进步,但鲁棒性、准确性、完整度和尺度仍然是构建真正通用管道的关键问题。我们提出了一种新的运动结构恢复技术,它改进了目前…

`psdparse`:解锁Photoshop PSD文件的Python密钥

文章目录 psdparse:解锁Photoshop PSD文件的Python密钥背景:为何选择psdparse?psdparse是什么?如何安装psdparse?简单函数使用方法应用场景常见Bug及解决方案总结 psdparse:解锁Photoshop PSD文件的Python密…

Git超详细教程

Git初始 概念 一个免费开源,分布式的代码版本控制系统,帮助开发团队维护代码 作用 记录代码内容,,切换代码版本,多人开发时高效合并代码内容 如何学: 个人本机使用:Git基础命令和概念 多…

【Windows】Android Studio 上cmd 换为Powershell 终端

最近在Windows 环境下Android Studio 的Terminal 终端,低版本默认用的是cmd.exe,好多linux 命令不支持,有时候一不小心就记忆错了;干脆直接换成Windows PowerShell 得了。 下载Powershell:https://aka.ms/PSWindows 选…

BP 网络的标准学习算法及其实现

BP 网络的标准学习算法及其实现 一、引言 BP(Back Propagation)神经网络是一种广泛应用于机器学习和人工智能领域的神经网络模型。它通过反向传播算法来调整网络的权重,以最小化预测输出和实际输出之间的误差。BP 网络的标准学习算法对于理…

git 多账号配置

windows下git多账号配置详解_git配置多个用户名和密码-CSDN博客 windows下git多账号配置详解_git配置多个用户名和密码-CSDN博客 windows下git多账号配置详解_git配置多个用户名和密码-CSDN博客

Ascend Extension for PyTorch的源码解析

1 源码下载 Ascend对pytorch代码的适配,可从以下链接中获取。 Ascend/pytorch 执行如下命令即可。 git clone https://gitee.com/ascend/pytorch.git2 目录结构解析 源码下载后,如果需要编译torch-npu,最好保持pytorch的源码版本匹配&…