Docker 安装和常用命令

安装 docker

  1. Ubuntu/ Kali Linux
bash 复制代码
sudo apt update
sudo apt install docker.io -y
sudo systemctl enable docker
sudo systemctl start docker
sudo usermod -aG docker $USER
  1. CentOS 7
bash 复制代码
yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce docker-ce-cli containerd.io -y
systemctl enable docker
systemctl start docker
usermod -aG docker $USER
  1. CentOS 9 Stream / CentOS 10 Stream
bash 复制代码
dnf install -y dnf-plugins-core
dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
dnf install docker-ce docker-ce-cli containerd.io -y
systemctl enable docker
systemctl start docker
usermod -aG docker $USER
  1. Rocky Linux 8/9(同 CentOS9)
bash 复制代码
dnf install -y dnf-plugins-core
dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
dnf install docker-ce docker-ce-cli containerd.io -y
systemctl enable docker
systemctl start docker
usermod -aG docker $USER
  1. ArchLinux
bash 复制代码
sudo pacman -S docker
sudo systemctl enable docker
sudo systemctl start docker
sudo usermod -aG docker $USER

Docker 安装镜像操作系统

我安装的是KyLin SP03 arm,想要其他的操作系统可以自行下载,我这里提供一个自己可以查找源的网站:

轩辕镜像:https://xuanyuan.cloud/zh/r/macrosan/kylin

bash 复制代码
# 社区维护版(支持 ARM64)
docker pull \
  --platform linux/arm64 \
  macrosan/kylin:v10-sp3-2403

# 或华为云镜像(国内更快)
docker pull \
  --platform linux/arm64 \
  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/hxsoong/kylin:v10-sp3-linuxarm64

Docker 常用命令

查看运行的容器

bash 复制代码
# 命令格式
docker ps [OPTIONS]

# 常用示例
# 查看运行中的容器
docker ps

# 查看运行中的容器(显示启动时间)
docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Status}}\t{{.RunningFor}}\t{{.CreatedAt}}"

参数介绍

参数选项 作用说明
无参数 显示正在运行的容器
-a, --all 显示所有容器(运行 + 已停止)
-l, --latest 显示最近创建的容器
-n, --last 显示最近创建的 N 个容器(如 -n 3)
-q, --quiet 仅显示容器 ID
-s, --size 显示文件大小
--no-trunc 不截断输出(显示完整信息)
-f, --filter 按条件过滤容器
--format 使用 Go 模板格式化输出

查看镜像

bash 复制代码
# 命令格式
docker images [OPTIONS]

# 常用示例
# 查看本地所有镜像
docker images

# 常用示例
#显示最近使用的镜像(带完整创建日期)
docker images --format "table {{.Repository}}\t{{.Tag}}\t{{.ID}}\t{{.CreatedAt}}\t{{.Size}}" | head -11

参数介绍

参数选项 作用说明
无参数 查看本地所有顶层镜像
-a, --all 显示所有镜像(包含中间层/临时镜像)
-q, --quiet 仅显示镜像ID,方便脚本批量操作
--no-trunc 显示完整的镜像ID,不截断
-f "过滤条件", --filter 按条件过滤镜像(名称、标签、时间等)
--format 自定义输出内容和格式(模板格式化)
--digests 显示镜像的摘要信息(Digest校验值)

运行镜像

bash 复制代码
# 命令格式
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

# 常用例子
# 交互式进入终端
docker run -it --rm ubuntu /bin/bash

# 后台运行并映射端口
docker run -d --name nginx -p 80:80 nginx

# 挂载目录 + 工作目录
docker run -it --rm -v $PWD:/app -w /app ubuntu

# 指定架构运行
docker run -it --rm --platform linux/arm64 myimage:v1

# 指定架构运行,挂载目录,交互式进入终端
docker run -it --platform linux/arm64 -v $PWD:/app myimage:v1 /bin/bash

参数介绍

参数选项 作用说明
-i 交互式运行,保持标准输入打开
-t 分配一个伪终端(TTY)
-it 最常用组合,交互式进入终端
-d 后台运行容器(守护式)
--rm 容器停止后自动删除
-p 主机端口:容器端口 端口映射
-P 随机映射所有暴露端口
-v 主机目录:容器目录 目录挂载(文件共享)
--name 名称 指定容器名称
--hostname 名称 设置容器主机名
--platform 架构 指定架构(linux/amd64, linux/arm64)
-e 键=值 设置环境变量
--env-file 文件 从文件加载环境变量
-w 路径 指定容器内工作目录
-u 用户 指定运行用户
--network 网络 指定容器网络
--restart 策略 设置重启策略(no,on-failure,always)
--privileged 给容器特权权限
--entrypoint 命令 覆盖镜像默认入口命令
--ip 指定IP 指定容器静态IP
--dns DNS地址 指定DNS
-h 同 --hostname
-a 绑定到标准输入/输出/错误

进入运行的容器

bash 复制代码
# 命令格式
docker exec [OPTIONS] 容器ID/容器名 要执行的命令

# 常用示例
# 进入容器终端(最常用)
docker exec -it 容器ID /bin/bash

# 直接在容器内执行命令,不进入终端
docker exec 容器ID ls /root

# 指定工作目录进入容器
docker exec -it -w /home 容器ID /bin/bash

参数介绍

参数 作用
-i 保持标准输入打开,确保可以交互
-t 分配一个伪终端(TTY),支持终端显示与输入
-it 交互式进入容器终端(最常用组合)
-d 后台执行命令,不占用当前终端
-e 设置容器内的环境变量
-u 指定执行命令的用户(如 root)
-w 指定容器内的工作目录
--privileged 以特权模式执行命令

容器修改保存镜像快照

bash 复制代码
# 命令格式
docker commit [OPTIONS] 容器ID或名称 新镜像名[:标签]

# 常用示例
# 基础保存容器为镜像
docker commit 容器ID myimage:v1

# 带作者和备注提交(推荐)
docker commit -a "张三" -m "配置好环境" 容器ID myimage:v2

参数介绍

参数选项 作用说明
-a, --author 设置镜像的作者信息(例如:-a "你的名字")
-c, --change 为提交的镜像应用 Dockerfile 指令
-m, --message 设置提交的备注信息(类似 Git 提交说明)
-p, --pause 提交时暂停容器运行(默认启用,保证数据完整)
--help 查看帮助文档

导出镜像 tar 包

bash 复制代码
# 命令格式
docker save [OPTIONS] IMAGE [IMAGE...]

# 常用示例
# 导出镜像为 tar 包(最常用)
docker save -o 我的镜像.tar 镜像名:版本

# 同时导出多个镜像到一个包
docker save -o 多个镜像.tar 镜像1:v1 镜像2:v2

参数介绍

参数选项 作用说明
-o, --output 指定导出的 tar 文件名和路径
--help 查看帮助文档

导入镜像 tar

bash 复制代码
# 命令格式
docker load [OPTIONS]

# 常用示例
# 从 tar 文件导入镜像(最常用)
docker load -i 镜像文件.tar

# 完整写法
docker load --input 镜像文件.tar

参数介绍

参数选项 作用说明
-i, --input 指定导入的 tar 归档文件路径
-q, --quiet 静默模式,仅输出错误信息
--help 查看帮助文档

删除容器

bash 复制代码
# 命令格式
docker rmi [OPTIONS] IMAGE [IMAGE...]

# 常用示例
# 删除单个镜像
docker rmi 镜像名:标签

# 强制删除镜像
docker rmi -f 镜像ID

# 删除多个镜像
docker rmi 镜像1 镜像2 镜像3

参数介绍

参数选项 作用说明
-f, --force 强制删除镜像(无视容器依赖)
--no-prune 保留未标记的父镜像,不移除
--help 查看帮助文档

一键清理所有无用容器、镜像、缓存

bash 复制代码
# 命令格式
docker system prune [OPTIONS]

# 常用示例
# 基础清理(安全)
docker system prune

# 彻底清理(推荐,空间释放最多)
docker system prune -a --volumes

# 无提示强制清理
docker system prune -af

参数介绍

参数选项 作用说明
-a, --all 删除所有未使用的镜像,而不仅仅是悬空镜像
-f, --force 不进行确认提示,直接执行清理操作
--volumes 同时清理未被任何容器使用的数据卷
--filter 根据条件过滤要清理的资源

总结

docker 使用类似于虚拟机,使用步骤为:

  1. 安装 docker
  2. 安装系统
  3. 登录系统工作
  4. 提交或者退出提交快照
  5. 导出 / 导出 / 删除快照

个人建议

如果只有一个机器,不想装多个虚拟机或者条件不具备,我觉得还是有必要使用的,不过他也是类似虚拟机的一个工具,工具的上限不会超过宿主机,所以如果想要做调试工作,建议还是安装个虚拟机,如果只是为了验证或者编译某个软件,你可以设置运行的镜像跟你宿主机一样大进行测试。

相关推荐
风翼靓崽2 小时前
记一次k8s pod的CrashLoopBackOff错误状态
云原生·容器·kubernetes
**蓝桉**2 小时前
Nginx 负载均衡策略详解
运维·nginx·负载均衡
GuiltyFet2 小时前
opencode+skill自动化渗透测试系列
运维·自动化
wanhengidc2 小时前
云手机 云端运行托管
运维·服务器·网络·安全·web安全·智能手机
青瓦梦滋2 小时前
Linux线程
linux·运维·c++
满天星83035772 小时前
【Linux/多路复用】select
linux·运维·服务器·c语言·c++
我叫唧唧波2 小时前
【自动化部署】CI/CD 实战(三):让 Argo CD 接管 CD,Jenkins 镜像自动同步到集群
运维·前端·ci/cd·docker·自动化·jenkins·argocd
dualven_in_csdn2 小时前
【docker】docker下如何使用宿主主机的GPU
运维·docker·容器
cyber_两只龙宝2 小时前
【Oracle】Oracle之SQL的集合运算符
linux·运维·数据库·sql·云原生·oracle