以下是一份 Ubuntu 下常用的 Docker 命令及示例解释,涵盖基本操作、镜像管理、容器生命周期等场景:
1. Docker 安装与验证
# 安装 Docker sudo apt update sudo apt install docker.io # 启动 Docker 服务并设置开机自启 sudo systemctl enable --now docker # 验证安装 docker --version # 查看版本 docker info # 查看 Docker 系统信息
2. 镜像管理
拉取镜像
docker pull ubuntu:22.04 # 拉取 Ubuntu 22.04 官方镜像 docker pull nginx:latest # 拉取最新版 Nginx 镜像
查看本地镜像
docker images # 列出所有本地镜像 docker image ls # 同上(新语法)
删除镜像
docker rmi ubuntu:22.04 # 删除指定镜像 docker image prune # 清理未被使用的镜像
构建镜像
# 通过 Dockerfile 构建镜像 docker build -t my-app:1.0 . # -t 指定镜像名称和标签
3. 容器生命周期
运行容器
# 启动一个交互式容器(退出后自动删除) docker run -it --rm ubuntu:22.04 /bin/bash # 后台运行 Nginx 并映射端口 docker run -d -p 8080:80 --name my-nginx nginx:latest # -d: 后台运行 # -p 主机端口:容器端口 # --name: 指定容器名称
查看容器
docker ps # 查看运行中的容器 docker ps -a # 查看所有容器(包括已停止的)
启动/停止/删除容器
docker start my-nginx # 启动已停止的容器 docker stop my-nginx # 停止运行中的容器 docker restart my-nginx # 重启容器 docker rm my-nginx # 删除已停止的容器 docker rm -f my-nginx # 强制删除运行中的容器
进入运行中的容器
docker exec -it my-nginx /bin/bash # 进入容器终端 # -it: 交互式终端
4. 网络管理
查看网络
docker network ls # 列出所有 Docker 网络
创建自定义网络
docker network create my-network # 创建新网络 docker run -d --net=my-network --name app1 nginx # 将容器加入自定义网络
端口映射检查
docker port my-nginx # 查看容器的端口映射
5. 数据卷与持久化
挂载主机目录
docker run -d -v /host/path:/container/path nginx # 挂载主机目录到容器
创建数据卷
docker volume create my-vol # 创建命名卷 docker run -d -v my-vol:/container/path nginx # 使用命名卷
6. 日志与监控
docker logs my-nginx # 查看容器日志 docker logs -f my-nginx # 实时跟踪日志(类似 tail -f) docker stats # 实时监控容器资源使用(CPU/内存) docker top my-nginx # 查看容器内进程
7. 清理与维护
docker system df # 查看 Docker 磁盘使用情况 docker system prune # 清理所有未使用的镜像、容器、网络 docker volume prune # 清理未使用的数据卷
8. 实用技巧
容器自启动策略
docker run -d --restart=unless-stopped nginx # 容器崩溃或重启后自动运行
从容器复制文件
docker cp my-nginx:/etc/nginx/nginx.conf ./ # 复制容器内文件到主机
查看容器信息
docker inspect my-nginx # 查看容器详细信息(IP、挂载卷等)
示例场景
运行 MySQL 并持久化数据
docker run -d --name mysql-db \ -v mysql-data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=secret \ -p 3306:3306 \ mysql:8.0 # -v: 使用命名卷 mysql-data 持久化数据库 # -e: 设置环境变量(密码)
通过以上命令,您可以快速掌握 Ubuntu 下 Docker 的基本操作。建议结合实践逐步熟悉参数含义!