Docker 基本命令
本文介绍 Docker 的基本命令,以及 Docker 服务的启动、关闭命令。Docker 命令可根据其三大核心概念进行划分,即镜像(Image)、容器(Container)和仓库(Repository)。
Docker 服务
查看 Docker 版本信息:
docker version
查看 Docker 简要信息:
docker -v
启动 Docker:
systemctl start docker
关闭 Docker:
systemctl stop docker
设置开机启动:
systemctl enable docker
镜像
检索镜像:
docker search 关键字
拉取镜像:
docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]
列出镜像:
docker image ls
docker images # 等效
删除镜像(指定镜像 ID):
docker rmi <镜像ID>
导出镜像(将镜像保存为归档文件):
docker save
导入镜像:
docker load
构建镜像(需要 Dockerfile):
docker build
运行镜像(就是新建并运行一个容器):
docker run [镜像ID]
容器
容器声明周期
启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一个是将在终止状态(stopped)的容器重新启动。
① 新建并启动容器:
docker run [镜像名/镜像ID]
② 启动已终止容器:
docker start [容器ID]
列出本机运行的容器:
docker ps
列出本机所有的容器(包括停止和运行):
docker ps -a
停止正在运行的容器:
docker stop [容器ID]
杀死容器进程:
docker kill [容器ID]
重启容器:
docker restart [容器ID]
删除容器:
docker rm [容器ID]
清除所有已停止的容器:
docker container prune
如果你想要删除所有容器,不管它们的状态如何(包括运行中和已停止),可以使用以下命令:
docker rm -f $(docker ps -aq)
如果想要在容器退出后自动释放资源,可以在启动 docker 容器时加上 --rm
选项:
docker run --rm [镜像名/镜像ID]
进入容器
进入容器也有两种方式,一种是从 stdin 进入,另一种是交互式进入。
① 从 stdin 进入容器(如果从该 stdin 中 exit,会导致容器的停止):
docker attach [容器ID]
② 交互式进入容器:
docker exec [容器ID]
通常使用第二种方式进入容器,docker exec
后面跟的常见参数如下:
-d, --detach
:在容器中后台执行命令-i, --interactive=true|false
:打开标准输入接受用户输入命令
导出和导入
导出容器(导出一个已经创建的容器到一个文件):
docker export [容器ID]
导入容器(导出的容器快照文件可以再导入为镜像):
docker import [路径]
其他
查看日志
导出的容器快照文件可以再导入为镜像:
docker logs [容器ID]
这个命令有以下常用参数:
-f
:跟踪日志输出--since
:显示某个开始时间的所有日志-t
:显示时间戳--tail
:仅列出最新 N 条容器日志
复制文件
从主机复制到容器:
sudo docker cp host_path containerID:container_path
从容器复制到主机:
sudo docker cp containerID:container_path host_path