Docker 常用操作命令及容器运行时参数
一、Docker 核心操作命令
1. 镜像管理
| 命令 |
说明 |
示例 |
docker search <镜像名> |
搜索镜像 |
docker search ubuntu |
docker pull <镜像名>:<标签> |
拉取镜像 |
docker pull ubuntu:22.04 |
docker images |
列出本地镜像 |
docker images |
docker rmi <镜像ID> |
删除镜像 |
docker rmi d123abc |
docker build -t <镜像名>:<标签> <路径> |
构建镜像 |
docker build -t myapp:1.0 . |
2. 容器管理
| 命令 |
说明 |
示例 |
docker run [参数] <镜像> |
启动容器 |
docker run -d -p 80:80 nginx |
docker ps |
查看运行中的容器 |
docker ps |
docker ps -a |
查看所有容器(含已停止) |
docker ps -a |
docker stop <容器ID> |
停止容器 |
docker stop 123abc |
docker start <容器ID> |
启动已停止的容器 |
docker start 123abc |
docker restart <容器ID> |
重启容器 |
docker restart 123abc |
docker rm <容器ID> |
删除已停止的容器 |
docker rm 123abc |
docker rm -f <容器ID> |
强制删除运行中的容器 |
docker rm -f 123abc |
docker logs <容器ID> |
查看容器日志 |
docker logs 123abc |
docker exec -it <容器ID> <命令> |
进入容器终端 |
docker exec -it 123abc /bin/bash |
docker inspect <容器ID> |
查看容器详细信息 |
docker inspect 123abc |
3. 网络管理
| 命令 |
说明 |
示例 |
docker network ls |
列出所有网络 |
docker network ls |
docker network create <网络名> |
创建自定义网络 |
docker network create mynet |
docker network connect <网络名> <容器ID> |
将容器连接到网络 |
docker network connect mynet 123abc |
docker network disconnect <网络名> <容器ID> |
断开容器与网络 |
docker network disconnect mynet 123abc |
4. 数据卷管理
| 命令 |
说明 |
示例 |
docker volume ls |
列出所有数据卷 |
docker volume ls |
docker volume create <卷名> |
创建数据卷 |
docker volume create myvol |
docker volume rm <卷名> |
删除数据卷 |
docker volume rm myvol |
二、容器运行时常用参数
1. 基础参数
| 参数 |
说明 |
示例 |
-d --detach |
后台运行容器 |
docker run -d nginx |
--name <名称> |
指定容器名称 |
docker run --name web nginx |
-it |
交互模式(分配伪终端) |
docker run -it ubuntu /bin/bash |
--rm |
容器退出后自动删除 |
docker run --rm alpine |
2. 端口映射
| 参数 |
说明 |
示例 |
-p <主机端口>:<容器端口> |
映射端口 |
docker run -p 8080:80 nginx |
-P --publish-all |
自动映射所有端口 |
docker run -P nginx |
3. 数据卷挂载
| 参数 |
说明 |
示例 |
-v <主机路径>:<容器路径> |
挂载主机目录 |
docker run -v /data:/app/data nginx |
-v <卷名>:<容器路径> |
挂载数据卷 |
docker run -v myvol:/app/data nginx |
4. 环境变量
| 参数 |
说明 |
示例 |
-e <变量名>=<值> |
设置环境变量 |
docker run -e DB_HOST=db mysql |
--env-file <文件> |
从文件读取环境变量 |
docker run --env-file .env mysql |
5. 资源限制
| 参数 |
说明 |
示例 |
--memory=<限制> |
限制内存使用 |
docker run --memory=512m nginx |
--cpus=<数量> |
限制 CPU 核心数 |
docker run --cpus=1.5 nginx |
--cpu-shares=<权重> |
CPU 优先级(默认 1024) |
docker run --cpu-shares=512 nginx |
6. 高级参数
| 参数 |
说明 |
示例 |
--restart=<策略> |
重启策略(no, on-failure, always) |
docker run --restart=always nginx |
--network=<网络> |
指定容器网络 |
docker run --network=mynet nginx |
--gpus all |
启用 GPU 支持 |
docker run --gpus all nvidia/cuda |
三、示例命令集
1. 启动一个带持久化数据的 MySQL
docker run -d \
--name mysql_db \
-e MYSQL_ROOT_PASSWORD=123456 \
-v mysql_data:/var/lib/mysql \
-p 3306:3306 \
mysql:8.0