Docker 常见命令快速查阅

基础命令

1. 帮助命令

bash 复制代码
docker version

docker info

docker --help

2. 镜像相关命令

列出主机的所有镜像

bash 复制代码
docker images [OPTIONS]
# OPTIONS 说明:
	-a :列出本地所有的镜像(含中间映像层)
	-q :只显示镜像ID
	--digests :显示镜像的摘要信息
	--no-trunc :显示完整的镜像信息

在官网查找镜像信息

bash 复制代码
docker search [OPTIONS] [NAME] 
# OPTIONS 说明
	--no-trunc : 显示完整的镜像描述
	-s : 列出收藏数不小于指定值的镜像。
	--automated : 只列出 automated build类型的镜像;

删除镜像

bash 复制代码
docker rmi [OPTIONS] [IMAGE_NAME | IMAGE_ID]
# OPTIONS 说明
 -f : 强制删除(不需要停止已经启动的容器)

拓展:命令的组合使用,通过 docker rmi -f $(docker images -qa) ,将两个命令配合使用,可以达到删除全部镜像的效果(尽量别用)。

3. 容器相关命令

新建并且启动容器

bash 复制代码
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
# OPTIONS 说明
	--name="容器新名字": 为容器指定一个名称
	-d: 后台运行容器,并返回容器ID,也即启动守护式容器
	-i:以交互模式运行容器,通常与 -t 同时使用
	-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用
	-P: 随机端口映射
	-p: 指定端口映射,有以下四种格式
	      ip:hostPort:containerPort
	      ip::containerPort
	      hostPort:containerPort
	      containerPort

-p 选项的详细解释

  1. ip:hostPort:containerPort
    • 格式:宿主机IP地址:宿主机端口:容器端口
    • 示例:192.168.1.100:8080:80,这将容器内部的80端口映射到宿主机的IP地址192.168.1.100的8080端口上。
  2. ip::containerPort
    • 格式:宿主机IP地址::容器端口
    • 示例:192.168.1.100::80,这将容器内部的80端口映射到宿主机的IP地址192.168.1.100的任意可用端口上。
  3. hostPort:containerPort
    • 格式:宿主机端口:容器端口
    • 示例:8080:80,这将容器内部的80端口映射到宿主机的8080端口上,不指定IP地址,通常映射到所有可用的网络接口。
  4. containerPort
    • 格式:仅指定容器端口
    • 示例:80,这将容器内部的80端口映射到宿主机的一个随机可用端口上。

启动 Ubuntu 实例的方法: docker run -it ubuntu /bin/bash

  • 如果不使用这种方法,容器会因为没有前台运行的内容而自我销毁。

列出正在运行的容器

bash 复制代码
docker ps [OPTIONS]
# OPRIONS 说明
	-a :列出当前所有正在运行的容器+历史上运行过的
	-l :显示最近创建的容器。
	-n:显示最近n个创建的容器。
	-q :静默模式,只显示容器编号。
	--no-trunc :不截断输出。

容器的 启动、停止 和 重启

bash 复制代码
# 容器的启动
docker start [CONTAINER_NAME | CONTAINER_ID]

# 容器的停止
docker stop [CONTAINER_NAME | CONTAINER_ID]
# 容器的强制停止
docker kill [CONTAINER_NAME | CONTAINER_ID]

# 重启容器
docker restart [CONTAINER_NAME | CONTAINER_ID]

容器的删除

bash 复制代码
docker rm [CONTAINER_NAME | CONTAINER_ID]

使用上面提到的组合命令可以达到删除所有停止的容器的效果: docker rm -f $(docker ps -a -q)


查看容器内的细节

bash 复制代码
# 查看容器内运行的进程
docker top [CONTAINER_ID]

# 查看容器内部细节
docker inspect [CONTAINER_ID]

进入正在运行的容器并以命令行交互

bash 复制代码
# 方式一
docker exec -it [CONTAINER_ID] /bin/bash

# 方式二
docker attach [CONTAINER_ID]

attach 直接进入容器启动命令的终端,不会启动新的进程,exec 是在容器中打开新的终端,并且可以启动新的进程;通过 exec 进入后使用 exit 退出后,容器内仍然有前台进程运行,容器不会被销毁。

数据卷相关命令

1. 数据卷挂载

bash 复制代码
# 创建数据卷
docker volume create

#查看所有数据卷
docker volume ls

# 删除指定数据卷
docker volume rm

# 查看某个数据卷的详情
docker volume inspect

# 清除数据卷
docker volume prune

在创建容器的时候,使用 docker run -v 数据卷名:容器内目录

2. 本地目录挂载

bash 复制代码
docker run -v [本地目录]:[容器内目录]
# 例如:docker run -v ./mysql:/var/lib/mysql

本地目录必须以 / 或者 ./ 开头,否则会被识别为数据卷而非本地目录

自定义镜像相关命令

1. Docker File 指令

指令 说明
FROM 指定基础镜像
ENV 设置环境变量,可以在后面的指令中使用
COPY 拷贝本地文件到镜像中的指定目录
RUN 执行 Linux 的 Shell 命令,一般是安装过程的命令
EXPOSE 指定容器运行的时候监听的端口,提供给镜像使用者当作参考
ENTRYPOINT 容器入口命令,镜像中应用的启动命令,容器运行时调用
bash 复制代码
docker build [OPTIONS] [DOCKER_FILE_POSITION]

OPTIONS 说明

Docker 网络相关命令

命令 说明
docker network create [NEWWORK_NAME] 创建一个网络
docker network ls 查看所有网络
docker netword rm [NEWWORK_NAME] 删除指定网络
docker network prune 清除未使用网络
docker network connect [NEWWORK] [CONTAINER] 使指定容器加入网络
docker network disconnect [NEWWORK] [CONTAINER] 使指定容器离开网络
docker network inspect [NEWWORK_NAME] 查看网络的详细信息
相关推荐
tonngw3 小时前
【Mac 从 0 到 1 保姆级配置教程 16】- Docker 快速安装配置、常用命令以及实际项目演示
macos·docker·容器·开源·github·docker desktop·orbstack
debug 小菜鸟5 小时前
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
docker·云计算·aws
SpikeKing5 小时前
Server - 使用 Docker 配置 PyTorch 研发环境
pytorch·docker·llm
码农101号6 小时前
Linux中shell编程表达式和数组讲解
linux·运维·服务器
powerfulzyh6 小时前
非Root用户启动SSH服务经验小结
运维·ssh
云道轩7 小时前
升级centos 7.9内核到 5.4.x
linux·运维·centos
斯普信云原生组7 小时前
Docker构建自定义的镜像
java·spring cloud·docker
爱学习的小道长7 小时前
Ubuntu Cursor升级成v1.0
linux·运维·ubuntu
2201_761199047 小时前
k8s4部署
云原生·容器·kubernetes
EelBarb7 小时前
seafile:ubuntu搭建社区版seafile12.0
linux·运维·ubuntu