docker 命令实用指南
Posted David_Hernandez
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker 命令实用指南相关的知识,希望对你有一定的参考价值。
系列文章目录
文章目录
Docker 命令
- run
- docker images 运行
- images
- docker images 查看
- ps
- docker containers 查看
- rm
- docker containers 删除
- rmi
- docker images 删除
- pull
- dockerhub images 拉取
- push
- dockerhub images 更新
- commit
- dockerhub images 提交
- exec
- docker containers 运行时修改
镜像
创建镜像
方式一:下载
# 下载指定版本容器镜像
docker pull gitlab/gitlab-ce:11.2.3-ce.0
方式二:从已经创建的容器中更新镜像,并且提交这个镜像
docker commit -m="First Docker" -a="wcjiang" a6b0a6cfdacf wcjiang/nginx:v1.2.1
上面命令参数说明:
- m 提交的描述信息
- a 指定镜像作者
- a6b0a6cfdacf 记住这个是容器id,不是镜像id
- wcjiang/nginx:v1.2.1 创建的目标镜像名
方式三:使用 Dockerfile 指令来创建一个新的镜像
参考 https://github.com/jaywcjlove/docker-tutorial
发布镜像
参考 https://github.com/jaywcjlove/docker-tutorial
容器
容器管理
# 列出本机正在运行的容器
docker container ls
docker start [containerID/Names] # 启动容器
docker stop [containerID/Names] # 停止容器
docker rm [containerID/Names] # 删除容器
docker logs [containerID/Names] # 查看日志
容器使用
创建
# 创建一个守护状态的 Docker 容器
docker run -itd my-nginx /bin/bash
进入容器
# 进入容器
docker exec -it [containerID/Names] /bin/bash
一次性使用
# 在docker容器中运行hello world!
docker run centos echo "hello world"
# 在docker容器中,安装wget软件
docker run centos yum install -y wget
文件拷贝
从主机复制到容器 sudo docker cp host_path containerID:container_path
从容器复制到主机 sudo docker cp containerID:container_path host_path
# 从正在运行的 Docker 容器里面,将文件拷贝到本机,注意后面有个【点】拷贝到当前目录
docker container cp [containID]:[/path/to/file] .
Docker GPU 使用
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/user-guide.html
例子
# 参数说明:
# --rm Automatically remove the container when it exits
-
Starting a GPU enabled CUDA container; using
--gpus
(常用)docker run --rm --gpus all nvidia/cuda nvidia-smi
-
Using
NVIDIA_VISIBLE_DEVICES
and specify the nvidia runtime (常用)docker run --rm --runtime=nvidia \\ -e NVIDIA_VISIBLE_DEVICES=all nvidia/cuda nvidia-smi
-
Start a GPU enabled container on two GPUs (常用)
docker run --rm --gpus 2 nvidia/cuda nvidia-smi
-
Starting a GPU enabled container on specific GPUs
docker run --gpus '"device=1,2"' \\ nvidia/cuda nvidia-smi --query-gpu=uuid --format=csv # uuid # GPU-ad2367dd-a40e-6b86-6fc3-c44a2cc92c7e # GPU-16a23983-e73e-0945-2095-cdeb50696982
-
Alternatively, you can also use
NVIDIA_VISIBLE_DEVICES
(常用)docker run --rm --runtime=nvidia \\ -e NVIDIA_VISIBLE_DEVICES=1,2 \\ nvidia/cuda nvidia-smi --query-gpu=uuid --format=csv # uuid # GPU-ad2367dd-a40e-6b86-6fc3-c44a2cc92c7e # GPU-16a23983-e73e-0945-2095-cdeb50696982
-
Query the GPU UUID using
nvidia-smi
and then specify that to the containernvidia-smi -i 3 --query-gpu=uuid --format=csv # uuid # GPU-18a3e86f-4c0e-cd9f-59c3-55488c4b0c24 docker run --gpus device=GPU-18a3e86f-4c0e-cd9f-59c3-55488c4b0c24 \\ nvidia/cuda nvidia-smi
References
- https://github.com/jaywcjlove/docker-tutorial
- https://github.com/NVIDIA/nvidia-docker
以上是关于docker 命令实用指南的主要内容,如果未能解决你的问题,请参考以下文章