概述
- 从 Docker 镜像仓库获取镜像
docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]
- 地址默认是docker hub
- 运行容器
docker run -d -it --rm \
ubuntu:16.04 \
bash
-d
,以守护态运行it
:这是两个参数,一个是-i
:交互式操作,一个是-t
终端。我们这里打算进入bash
执行一些命令并查看返回结果,因此我们需要交互式终端。rm
:这个参数是说容器退出后随之将其删除。默认情况下,为了排障需求,退出的容器并不会立即删除,除非手动docker rm
。我们这里只是随便执行个命令,看看结果,不需要排障和保留结果,因此使用--rm
可以避免浪费空间。bash
:放在镜像名后的是命令,这里我们希望有个交互式Shell
,因此用的是bash
-p 8081:8080
:端口绑定,本地的8081
对应容器的8080
- 列出已经下载下来的镜像
- 只显示顶层镜像
docker image ls[镜像名][:标签]
- 显示所有镜像
为了加速镜像构建、重复利用资源,Docker 会利用 中间层镜像。
可能会存在虚悬镜像,但是不应该删除,他们是其他上层镜像所依赖的
$ docker image ls -a
- 查看已生成的容器(如果查看正在运行的则不需要加
--all
)
docker container ls --all
- 查看镜像、容器、数据卷所占用的空间
docker system df
-
虚悬镜像
由于新旧镜像同名,旧镜像名称被取消或者官方更新后镜像名被转移到新下载的镜像上,导致为<none>
的情况,这类无标签镜像也被称为 虚悬镜像(dangling image)
- 显示虚悬镜像
$ docker image ls -f dangling=true
- 删除虚悬镜像
$ docker image prune
- 删除本地镜像
$ docker image rm [选项] <镜像1> [<镜像2> ...]
- 我们需要删除所有仓库名为 redis 的镜像:
$ docker image rm $(docker image ls -q redis)
- 进入容器
$ docker exec -it [name] bash
- 查看正在运行的容器
docker ps
- 查找镜像(从官网hub上)
docker search ubuntu