文章目录
Docker 基础命令解析
1. 镜像仓库获取镜像
- 从 Docker 镜像仓库获取镜像命令:
$ docker pull [选项] [Docker Registry 域名/IP[:端口号]/]仓库名[:标签]
- 默认的 Docker Registry 域名/IP:Docker Hub(docker.io)
- 仓库名一般是<用户名/软件名>:默认用户名为 library 意为官方镜像
- 获取镜像还无法运行,需要以镜像为基础启动并运行一个容器
- 命令示例:
$ docker run -it --rm ubuntu:18.04 bash
-it
: 两个参数-i
和-t
标志,容器以交互方式运行并将输出记录到伪终端(pseudo-tty)--rm
:容器退出后就删除,不加此参数需要手动执行 docker rmbash
:容器内执行的命令(等同 /bin/bash),此命令是进入容器后,进入 Ubuntu 18.04 的 Bash shell 终端环境,执行任何所需的命令(Ubuntu 镜像默认的命令是 /bin/sh 进入 sh shell)- 输入
$ exit
:退出容器
- 命令示例:
2. 列出所有镜像
- 列出所有镜像命令:
$ docker image ls
- 结果:仓库名、标签、镜像 ID(镜像的唯一标识)、创建时间 以及 所占用的空间
3. 删除本地镜像
- 删除本地镜像命令:
$ docker image rm [选项] <镜像1> [<镜像2> ...]
- <镜像>:镜像短 ID(一般前3个字符以上,足够区分即可)、镜像长 ID、镜像名(<仓库名>[:<标签>]) 或者 镜像摘要(
$ docker image ls --digests
返回的 DIGEST)
- <镜像>:镜像短 ID(一般前3个字符以上,足够区分即可)、镜像长 ID、镜像名(<仓库名>[:<标签>]) 或者 镜像摘要(
- 如果此镜像启动的容器存在(无论是否运行),删除镜像会出错,需要先将容器删除
4. 查看所有容器
- 查看所有运行中容器命令:
docker container ls
- CONTAINER ID:唯一的识别号码
- IMAGE:容器的镜像名
- COMMAND:启动容器时运行的命令
- CREATED:创建时间
- STATUS:容器的状态,运行中(Up)、退出(Exited)等
- PORTS:容器的端口映射和绑定信息
- NAMES:自定的容器的名称
- 查看终止状态的容器命令:
docker container ls -a
- 查看正在运行的容器命令:
docker ps
5. 启动容器
- Docker 的容器特别轻量,很适合随时删除和新创建容器(可以类比 Git 的分支)
1. 基于镜像新建容器并启动
- 基于镜像新建容器并启动命令:
$ docker run [选项] 仓库名[:标签] [/bin/bash 命令等]
- 检查本地是否存在指定的镜像,不存在就从 registry 下载
2. 启动已终止容器
- 启动已终止(exited)容器命令:
$ docker container start [选项] <容器1> [<容器2> ...]
- 重启运行中的容器命令:
$ docker container restart [选项] <容器1> [<容器2> ...]
3. 后台启动容器
- 后台启动容器命令:
$ docker run -d [选项] 仓库名[:标签] [/bin/bash 命令等]
- 容器会在后台运行并不会把输出的结果 (STDOUT) 打印到宿主机上面,输出结果可以用 docker logs 查看
- 容器是否会长久运行,是和 docker run 指定的命令有关,和 -d 参数无关
6. 终止容器
- 终止运行中的容器命令:
$ docker container stop [选项] <容器1> [<容器2> ...]
- 当 Docker 容器中指定的应用终结时,容器也自动终止
- 如用户通过 exit 命令或 Ctrl+d 来退出终端时,所创建的容器立刻终止
7. 进入容器
- 启动时使用 -d 参数时,容器启动后会进入后台,此时可使用
$ docker attach
或$ docker exec
$ docker attach CONTAINER-ID
:进入容器后,通过$ exit
退出时会停止容器- 推荐
$ docker exec [选项] CONTAINER-ID [/bin/bash 命令等]
:进入容器后,通过$ exit
退出时不会停止容器
8. 删除容器
- 删除处于终止状态的容器命令:
$ docker container rm [选项] <容器1> [<容器2> ...]
- 删除处于运行中状态的容器命令:
$ docker container rm -f [选项] <容器1> [<容器2> ...]
- 清理所有处于终止状态的容器命令:
$ docker container prune
参考:
https://vuepress.mirror.docker-practice.com/introduction/what/
https://www.runoob.com/docker/docker-container-usage.html