一、概述
本文基于 docker 20.10.12
版本,整理了 docker
中一些常用的基础命令,命令主要分为镜像相关和容器相关两个部分。
二、镜像相关
-
镜像拉取
docker pull <repository>:<tag>
-
镜像列表查询
docker images [<repository>:<tag>]
-
查看镜像的分层信息
docker inspect <repository>:<tag>
-
删除镜像
docker rmi <repository>:<tag> docker rmi <imageId>
-
导入本地镜像文件
docker 镜像文件一般是一个
tar
格式的压缩包。docker load < <imageFile> docker load -i <imageFile>
-
导出镜像为镜像文件
除了
save
命令,还有一个export
命令,使用方法相同。docker save <repository>:<tag> > <imageFile> docker save <repository>:<tag> -o <imageFile>
-
使用
Dockerfile
构建镜像除了以下使用的
-t
指定标签参数,还有许多指定内存、CPU等数据的参数docker build -f <Dockerfile> -t <repository>:<tag> .
-
查询镜像的创建历史
docker history <repository>:<tag>
-
为已有的镜像创建一个新的标签
docker tag <oldRepository>:<oldTag> <newRepository>:<newTag>
三、容器相关
-
创建一个新容器运行命令
docker run [OPTIONS] <repository>:<tag> [COMMAND] [ARG...]
部分常用OPTIONS参数:
参数 说明 -p 指定端口映射,格式为:外部端口:容器端口 -i 以交互模式运行容器,通常与 -t 同时使用 -t 为容器重新分配一个伪输入终端,通常与 -i 同时使用 -d 后台运行容器,并返回容器ID --volume , -v 绑定一个卷,格式为:外部路径:容器内部路径 -m 设置容器使用内存最大值 --cpuset="0-2"
--cpuset="0,1,2"绑定容器到指定CPU运行 --name="blog" 为容器指定一个名称 示例:
# 80端口映射,data目录挂载,后台运行 docker run -p 80:80 -v /data:/data -d nginx:latest # 以交互模式启动容器,在容器内执行/bin/bash命令 docker run -it nginx:latest /bin/bash
-
容器的启动、停止与重启
# 启动 docker start <container> [container...] # 停止 docker stop <container> [container...] # 重启 docker restart <container> [container...]
-
打印容器列表
docker ps [OPTIONS]
部分常用OPTIONS参数:
参数 说明 -a 显示所有的容器,包括未运行的 -n 列出最近创建的n个容器 -s 显示总的文件大小 -q 只显示容器编号 -
创建一个新的容器,但不启动
docker create [OPTIONS] <repository>:<tag> [COMMAND] [ARG...]
-
在运行的容器中执行命令
docker exec [OPTIONS] <container> [COMMAND] [ARG...]
部分常用OPTIONS参数:
参数 说明 -d 在后台运行 -i 即使没有附加也保持STDIN 打开 -t 分配一个伪终端 -
连接到正在运行中的容器
无法退出连接,Ctrl+C/Ctrl+P/Ctrl+Q?实际使用中都不行!
docker attach <container>
-
文件拷贝
容器内路径的表达格式:容器Id:容器内路径
docker cp <srcPath> <destPath>
-
检查容器内文件的变动
A:表示创建,D:表示删除,C:表示修改
docker diff <container>
-
将当前容器打包成一个镜像
docker commit [OPTIONS] <container> [<repository>:<tag>]
示例:
docker commit dc test:v6
-
查询容器的端口映射
docker port <container>
-
导出容器为镜像文件
docker export <repository>:<tag> > <imageFile> docker export <repository>:<tag> -o <imageFile>
-
阻塞当前终端的运行,直到容器停止运行
docker wait <container> [container...]
-
打印容器的日志信息
docker logs [OPTIONS] <container>
部分常用OPTIONS参数:
参数 说明 -f 跟踪日志输出 --since 显示某个开始时间的所有日志 -t 显示时间戳 --tail 仅列出最新n条容器日志 -
查看容器中运行的进程信息
docker top <container>
-
暂停容器的运行
docker pause <container> [container...]
-
恢复容器的运行
docker unpause <container> [container...]
-
删除容器
docker rm [OPTIONS] <container> [container...]
部分常用OPTIONS参数:
参数 说明 -f 通过 SIGKILL 信号强制删除一个运行中的容器 -i 移除容器间的网络连接,而非容器本身 -v 删除容器,并删除与容器关联的卷 -
终止一个正在运行的容器
docker kill [OPTIONS] <container> [container...]
部分常用OPTIONS参数:
参数 说明 -s 向容器发送一个信号 示例:
docker kill -s KILL nginx