操作 Docker 容器常用命令汇总

镜像仓库常用指令:Docker 镜像仓库是什么?有哪些镜像仓库命令? - 掘金 (juejin.cn)

镜像常用指令:操作 Docker 镜像的常用命令 - 掘金 (juejin.cn)

1. 什么是容器?

  容器是镜像的运行实体。容器是基于镜像创建的可运行实例,并且单独存在,一个镜像可以创建出多个容器。容器有自己独立的命名空间隔离和资源限制。也就是说在容器内部,无法看到主机上的进程、环境变量、网络等信息,这是容器与直接运行在主机上进程的本质区别。

2. 操作容器的命令

2.1 docker run

  • 功能:创建一个新的容器并运行一个命令
shell 复制代码
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
  • 参数:

    • -d: 后台运行容器,并返回容器 ID
    • -i: 以交互模式运行容器,通常与 -t 同时使用
    • -P: 随机端口映射,容器内部端口随机映射到主机的端口
    • -p: 指定端口映射,格式为: 主机(宿主)端口:容器端口
    • -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用
    • --name "......": 为容器指定一个名称
    • -h "mars": 指定容器的 hostname
    • -e username="ritchie": 设置环境变量
    • --cpuset-cpus="0-2" or --cpuset-cpus="0,1,2": 绑定容器到指定 CPU 运行
    • -m :设置容器使用内存最大值
    • --network="......": 指定容器的网络连接类型
    • --link=\[\]: 添加链接到另一个容器
    • --volume , -v: 绑定一个卷
    • --rm :shell 退出的时候自动删除容器
  • -i、-t 参数

shell 复制代码
# 拉取一个 centos:7 的镜像
ocker pull centos:7
# 启动容器,并进入该容器的终端,并将它的名字改为 mycentos2
docker run -it --name mycentos2 centos:7
  1. CONTAINER ID: 容器的唯一标识符,通常是一个长字符串。
  2. IMAGE: 容器所基于的镜像。在这个例子中,使用的是 CentOS 7 镜像。
  3. COMMAND: 运行容器时执行的命令。
  4. CREATED: 容器创建的时间。
  5. STATUS: 容器的状态。在这个例子中,"Exited (0)" 表示容器已经停止运行,括号中的数字表示容器退出时的状态码。
  6. PORTS: 容器的端口映射情况。
  7. NAMES: 容器的名称。
  • -p、-P 参数

由于容器里应用程序端口与外面是隔离的,所以需要将容器里的端口与主机的端口相映射。

shell 复制代码
# 将主机的 8081 端口与 nginx 的默认端口相绑定,并将 nginx 后台运行
docker run -d -p 8081:80 nginx:1.23.3

浏览器输入 IP 地址与端口:

访问 nginx 成功!

  • -h

2.2 docker ps

  • 功能:列出容器
shell 复制代码
docker ps [OPTIONS]
或
docker container ls, docker container list, docker container ps
  • 参数:

    • -a :显示所有的容器,包括未运行的。
    • -f :根据条件过滤显示的内容。
    • --format :指定返回值的模板文件。如 json 或者 table
    • -l :显示 latest 的容器。
    • -n :列出最近创建的 n 个容器。
    • --no-trunc :不截断输出。
  • -a

  • -f
  • -format

2.3 docker create

  • 功能:创建一个容器但是不启动它。
shell 复制代码
docker create [OPTIONS] IMAGE [COMMAND] [ARG...]
  • 参数:
    • -i: 以交互模式运行容器,通常与 -t 同时使用;
    • -P: 随机端口映射,容器内部端口随机映射到主机的端口
    • -p: 指定端口映射,格式为: 主机(宿主)端口:容器端口
    • -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
    • --name="......": 为容器指定一个名称;
    • -h "mars": 指定容器的 hostname;
    • -e username="ritchie": 设置环境变量;
    • --cpuset-cpus="0-2" or --cpuset-cpus="0,1,2": 绑定容器到指定 CPU 运行;
    • -m :设置容器使用内存最大值;
    • --network="bridge": 指定容器的网络连接类型;
    • --link=\[\]: 添加链接到另一个容器;
    • --volume , -v: 绑定一个卷
    • --rm :shell 退出的时候自动删除容器

2.4 docker logs

  • 功能:查看容器日志
shell 复制代码
docker logs [OPTIONS] CONTAINER
  • 参数:
    • -f: 跟踪日志输出
    • --since :显示某个开始时间的所有日志
    • -t: 显示时间戳
    • -n,--tail :仅列出最新 N 条容器日志

2.5 docker attach

  • 功能:连接到正在运行中的容器
shell 复制代码
docker attach [OPTIONS] CONTAINER
  • 参数:
    • --sig-proxy:是否将所有信号代理,默认是 true,如果设置为 false,退出的话不会影响容器,否则退出会导致容器退出。

2.6 docker exec

  • 功能:在容器中执行命令
shell 复制代码
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
  • 参数:
    • -d :分离模式: 在后台运行
    • -i :即使没有附加也保持 STDIN 打开
    • -t :分配一个伪终端
    • -e :设置环境变量
    • -u,--user :指定用户 "<name|uid>:\"
    • -w,--workdir:指定工作目录
shell 复制代码
#在容器中以交互模式打开 shell:
docker exec -it mynginx bash

2.7 docker start

  • 功能:启动停止的容器
shell 复制代码
docker start CONTAINER [CONTAINER...]

2.8 docker stop

  • 功能:停止运行的容器
shell 复制代码
docker stop CONTAINER [CONTAINER...]

2.9 docker restart

  • 功能:重启容器
shell 复制代码
docker restart CONTAINER [CONTAINER...]

2.10 docker kill

  • 功能:强制退出容器
shell 复制代码
docker kill CONTAINER [CONTAINER...]

2.11 docker top

  • 功能:查看容器中运行的进程信息,支持 ps 命令参数。
shell 复制代码
ocker top CONTAINER [ps OPTIONS]

2.12 docker stats

  • 功能:显示容器资源的使用情况,包括: CPU、内存、网络 I/O 等。
shell 复制代码
docker stats [OPTIONS] [CONTAINER...]
  • 参数:
    • --all , -a :显示所有的容器,包括未运行的。
    • --format :指定返回值的模板文件。如 table,json
    • --no-stream :展示当前状态就直接退出了,不再实时更新。
    • --no-trunc :不截断输出。
  • CONTAINER IDNAME: 容器 ID 与名称。
  • CPU %MEM %: 容器使用的 CPU 和内存的百分比。
  • MEM USAGE / LIMIT: 容器正在使用的总内存,以及允许使用的内存总量。
  • NET I/O: 容器通过其网络接口发送和接收的数据量。
  • BLOCK I/O: 容器从主机上的块设备读取和写入的数据量。
  • PIDS: 容器创建的进程或线程数

2.13 docker container inspect

  • 功能:查看容器详细信息
shell 复制代码
docker container inspect [OPTIONS] CONTAINER [CONTAINER...]
  • 参数:
    • -f :指定返回值的模板文件。如 table、 json
    • -s :显示总的文件大小

2.14 docker port

  • 功能:用于列出指定的容器的端口映射。
shell 复制代码
docker port CONTAINER [PRIVATE_PORT[/PROTO]]

2.15 docker cp

  • 功能:在容器和宿主机之间拷贝文件
shell 复制代码
# 把容器中的文件拷贝到宿主机的目录下
docker cp 容器ID或名称:宿主机的文件 宿主机的目录  
# 把宿主机中的文件拷贝到容器中的某个目录下
docker cp 宿主机的文件  容器ID或名称:容器的目录

2.16 docker diff

  • 功能:检查容器里文件结构的更改。
shell 复制代码
docker diff CONTAINER

2.17 docker commit

  • 功能:从容器创建一个新的镜像。
shell 复制代码
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
  • 参数:
    • -a :提交的镜像作者;
    • -c :使用 Dockerfile 指令来创建镜像;可以修改启动指令
    • -m :提交时的说明文字;
    • -p :在 commit 时,将容器暂停

2.18 docker pause

  • 功能:暂停容器中所有的进程。
shell 复制代码
docker pause CONTAINER [CONTAINER...]

2.19 docker unpause

  • 功能:恢复容器中所有的进程。
shell 复制代码
docker unpause CONTAINER [CONTAINER...]

2.20 docker rm

  • 功能:删除停止的容器
shell 复制代码
docker rm [OPTIONS] CONTAINER [CONTAINER...]
  • 参数:-f :通过 SIGKILL 信号强制删除一个运行中的容器。
shell 复制代码
#删除所有停止的容器
docker rm $(docker ps -a -q)

2.21 docker export

  • 功能:导出容器内容为 tar 文件。
shell 复制代码
docker export [OPTIONS] CONTAINER
shell 复制代码
# 导出 nginx 为 tar
docker export -o mynginx202203.tar mynginx

2.22 docker import

  • 功能:将 export 导出的 tar 文件创建一个镜像
shell 复制代码
docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
  • 参数:
    • -c :应用 docker 指令创建镜像。
    • -m :提交时的说明文字。
shell 复制代码
docker import mynginx202203.tar mynginx:v4

2.23 docker rename

  • 功能:重命名容器
shell 复制代码
docker rename CONTAINER NEW_NAME

2.24 docker container prune

  • 功能:删除所有停止的容器
shell 复制代码
docker container prune [OPTIONS]
  • 参数:-f, --force:不提示是否进行确认
相关推荐
java_logo5 分钟前
Docker 部署 Trilium Notes 完整教程:自建大型知识库
docker·容器·trilium·trilium note·trilium部署·docker部署trilium·trilium部署文档
myqijin8 分钟前
Cloudflare Tunnel docker-compose.yml
docker
weixin_307779139 分钟前
Linux下Docker Compose里运行PostgreSQL数据库故障诊断Shell脚本
linux·运维·数据库·docker·postgresql
梦想的颜色25 分钟前
【Docker 原理】Docker 数据持久化完全指南:三种挂载原理、数据卷实操、数据库落地实战
docker·云原生·数据持久化·volume·数据卷·容器挂载
qiu_lovejun99836 分钟前
linux安装docker和redis和rabbitmq和nginx和rocketmq和kafka
linux·redis·docker·kafka·rabbitmq·rocketmq
源码学社1 小时前
Spug 3.0 Ubuntu 22.04 Docker 部署文档
linux·ubuntu·docker·windows安装·spug
石小千2 小时前
修改Docker Engine 存储路径
运维·docker·容器
xinyu3913 小时前
旧版Ubuntu Docker镜像 apt 失败
linux·ubuntu·docker
bin91534 小时前
使用Docker安装github项目 源码中含有 docker-compose.yml
docker·eureka·github
weixin_307779134 小时前
Linux下Docker Compose里运行Milvus向量数据库故障诊断Shell脚本
linux·运维·数据库·docker·milvus