# Docker常用命令
# Docker镜像常用命令
# 搜索镜像
可使用docker search命令搜索存放在Docker Hub中的镜像:
docker search [OPTION] TERM
如使用如下命令得到输出:
sudo docker search pytorch
# NAME DESCRIPTION STARS OFFICIAL AUTOMATED
# bitnami/pytorch Bitnami PyTorch Docker Image 46
# armswdev/pytorch-arm-neoverse PyTorch builds for AArch64 CPUs 7
# armswdev/pytorch-arm-neoverse-n1 PyTorch images for Arm Neoverse-N1 7
# graphcore/pytorch The Poplar® SDK plus PyTorch for IPUs. 2
# graphcore/pytorch-jupyter The Poplar® SDK plus PyTorch for IPUs includ… 2
该列表包含五列,分别表示:
- NAME: 镜像仓库名称
- DESCRIPTION: 镜像仓库描述
- STARS: 镜像仓库收藏数,表示该镜像仓库的受欢迎程度,类似github的star
- OFFICIAL: 表示是否为官方仓库,该列标记为[OK]的镜像均由各软件的官方项目组创建和维护
- AUTOMATED: 表示是否是自动创建的镜像仓库
# 下载镜像
使用docker pull
命令可以从Docker Registry
上下载镜像。
docker pull [OPTION] NAME[:TAG|@DIGEST]
命令参数见下表:
Name | Default | Description |
---|---|---|
--all-tags,-a | false | 下载所有标签的镜像 |
--disable-content-trust | true | 忽略镜像的校验 |
如下命令:
docker pull ros
执行该命令后,会从Docker Hub中的ROS仓库下载最新的ROS镜像。如镜像下载缓慢,可参考前述章节配置镜像加速器。
# 列出镜像
使用docker images
命令即可列出已下载的镜像。
命令格式:
docker images [OPTIONS] [REPOSITORY[:TAG]]
参数如下表:
Name | Default | Description |
---|---|---|
--all,-a | false | 列出本地所有镜像层(包括中间镜像层,默认情况下,过滤中间映像层) |
--digest | false | 显示摘要信息 |
--filter,-f | 显示满足条件的镜像 | |
--no-trunc | false | 不截断输出,显示完整的镜像信息 |
--quiet,-q | false | 只显示镜像ID |
例如执行如下命令得到:
sudo docker images
# REPOSITORY TAG IMAGE ID CREATED SIZE
# hello-world latest 9c7a54a9a43c 11 days ago 13.3kB
展示出来的五个字段的含义分别为:
- REPOSITORY:镜像所属仓库名称
- TAG:镜像标签,默认是latest,表示最新
- IMAGE ID:镜像ID,表示镜像唯一标识
- SIZE:镜像大小
# 删除本地镜像
使用docker rmi
命令即可删除指定镜像。
命令格式:
docker rmi [OPTIONS] IMAGE [IMAGE...]
命令参数列表:
Name | Default | Description |
---|---|---|
--force,-f | false | 强制删除 |
--no-prune | false | 不移除该镜像的过程镜像,默认是移除 |
如下命令将输出指定镜像:
sudo docker rmi -f hello-world
# Untagged: hello-world:latest
# Untagged: hello-world@sha256:fc6cf906cbfa013e80938cdf0bb199fbdbb86d6e3e013783e5a766f50f5dbce0
# Deleted: sha256:9c7a54a9a43cca047013b82af109fe963fde787f63f9e016fdc3384500c2823d
# 保存镜像
docker save
命令
命令格式:
docker save [OPTIONS] IMAGE [IMAGE...]
命令参数:
Name | Default | Description |
---|---|---|
--output,-o | false | 输出到文件,而非标准输出 |
如下命令将保存镜像:
docker save --output hello-world.tar hello-world
# 加载镜像
命令格式
docker load [OPTIONS]
命令参数
Name | Default | Description |
---|---|---|
--input,-i | 从文件加载而非标准输入 | |
--quiet,-q | false | 静默加载 |
命令示例:
docker load --input hello.tar
# 构建镜像
创建一个新的镜像需要使用 Dockerfile 文件,其中包含一组指令来告诉 Docker 如何构建镜像。
命令格式
docker build [OPTIONS] PATH | URL | -
命令参数见docker build --help
命令示例
sudo docker build -t daydayup/ubuntu:1.8 .
-t
:指定要创建的目标镜像名. :Dockerfile
文件所在目录,可以指定Dockerfile 的绝对路径
# Docker容器常用命令
# 新建并启动容器
docker run [OPTIONS]
这个命令十分常用
命令参数可通过docker run --help
查看
示例命令
docker run -d -p 91:80 nginx
如上命令会启动一个nginx容器。访问http://{Docker宿主机IP}:91/
,可以访问启动的nginx服务器。
需要注意的是,使用docker run
命令创建容器时,会先检查本地是否存在指定镜像。如果本地不存在该名称的镜像,Docker
会自动从Docker hub下载镜像并启动一个Docker容器。
# 列出容器
命令格式
docker ps [OPTIONS]
命令参数
Name | Default | Description |
---|---|---|
--all, -a | false | 列出所有容器,包括未运行的容器。默认只展示运行的容器 |
--filter,-f | 根据条件过滤显示内容 | |
--format | 通过Go语言模板文件展示镜像 | |
--last,-n | -1 | 显示最近创建的n个容器(包含所有状态) |
--no-trunc | false | 不截断输出 |
--quiet,-q | false | 静默模式,只展示容器的ID |
--size,-S | false | 显示总文件大小 |
若需列出所有容器(包括已停止的容器),可使用-a参数。该表格包含了7列,含义如下:
- CONTAINER_ID:表示容器ID。
- IMAGE:表示镜像名称。
- COMMAND:表示启动容器时运行的命令。
- CREATED:表示容器的创建时间。
- STATUS:表示容器运行的状态。
- Up表示运行中,Exited表示已停止。
- PORTS:表示容器对外的端口号。
- NAMES:表示容器名称。该名称默认由Docker自动生成,也可使用docker run的-name选项自行指定。
# 停止容器
命令格式
docker stop [OPTIONS] CONTAINER [CONTAINER...]
Name | Default | Description |
---|---|---|
--time, -t | 10 | 强制停止容器前等待的时间,单位s |
示例
docker stop 7789ad3f2(容器ID)/hello-world(容器名称)
# 强制停止容器
docker kill 78f4ed(容器ID)
# 启动已停止的容器
docker start [OPTIONS] CONTAINER [CONTAINER...]
docker run
可新建并启动一个容器,对于已停止的容器,可使用docker start
命令来启动。
示例
docker start 78df23fd(容器ID)
# 删除容器
docker rm 788df98(容器ID)
删除所有容器
docker rm -f $(docker ps -a -q)
# 导出容器
docker export red_panda > latest.tar
将容器导出成一个压缩包文件
# 导入容器
docker import latest.tar > nginx
从归档文件导入内容并创建容器。
← Docker安装 使用Dockerfile →