一、核心语法(必须掌握)
docker run [OPTIONS] 镜像名[:标签] [COMMAND] [ARG…]
• docker run:固定开头,创建+启动容器
• [OPTIONS]:可选参数(端口、挂载、环境变量等)
• 镜像名[:标签]:要运行的镜像(如 nginx:latest,省略标签默认 latest)
• [COMMAND]:容器启动后执行的命令(可选,部分镜像自带默认命令)
二、高频必用参数(90%场景够用)
参数 全称 作用 示例
-d –detach 后台守护运行(不占用终端,服务类必用) docker run -d nginx
-it -i -t 交互式终端(进入容器内部操作,调试用) docker run -it ubuntu bash
-p –publish 端口映射(主机端口:容器端口) docker run -p 8080:80 nginx
-v –volume 数据卷挂载(主机目录:容器目录,持久化数据) docker run -v /root/data:/var/www nginx
–name –name 给容器起自定义名字(方便管理) docker run –name my-nginx nginx
–rm –rm 容器停止后自动删除(临时任务用) docker run –rm alpine ping baidu.com
-e –env 设置环境变量(配置容器参数) docker run -e MYSQL_ROOT_PASSWORD=123456 mysql
–restart –restart 容器自动重启策略(服务器重启后自启) docker run –restart=always nginx
–network –network 指定容器网络(如桥接、主机模式) docker run –network=host nginx
三、全场景常用应用命令(直接复制用)
1. Web服务类(最常用)
Nginx(反向代理/静态网站)
# 基础后台运行
docker run -d nginx:latest
# 带端口映射+自定义名称+数据挂载(推荐生产用)
docker run -d -p 80:80 -p 443:443 –name nginx -v /root/nginx/conf:/etc/nginx -v /root/nginx/html:/usr/share/nginx/html -v /root/nginx/logs:/var/log/nginx –restart=always nginx:latest
Apache(httpd)
docker run -d -p 80:80 –name apache -v /root/apache/html:/usr/local/apache2/htdocs –restart=always httpd:latest
2. 数据库类
MySQL
# 基础运行(设置root密码)
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 –name mysql –restart=always mysql:8.0
# 带数据持久化(推荐)
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -v /root/mysql/data:/var/lib/mysql -v /root/mysql/conf:/etc/mysql/conf.d –name mysql –restart=always mysql:8.0
PostgreSQL
docker run -d -p 5432:5432 -e POSTGRES_PASSWORD=123456 -e POSTGRES_USER=admin -v /root/postgres/data:/var/lib/postgresql/data –name postgres –restart=always postgres:latest
Redis
# 基础运行
docker run -d -p 6379:6379 –name redis –restart=always redis:latest
# 带密码+持久化
docker run -d -p 6379:6379 –name redis -v /root/redis/data:/data –restart=always redis:latest redis-server –requirepass 123456 –appendonly yes
3. 中间件/工具类
Docker Compose(多容器编排,需单独安装)
# 直接在输入框执行(部分面板支持)
docker-compose up -d
Portainer(Docker可视化管理面板,强烈推荐)
docker run -d -p 9000:9000 -p 9443:9443 –name portainer –restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /root/portainer/data:/data portainer/portainer-ce:latest
Jenkins(CI/CD自动化部署)
docker run -d -p 8080:8080 -p 50000:50000 –name jenkins -v /root/jenkins/data:/var/jenkins_home –restart=always jenkins/jenkins:lts
WordPress(博客系统,需搭配MySQL)
# 先跑MySQL(上面的MySQL命令),再跑WordPress
docker run -d -p 8080:80 –name wordpress -e WORDPRESS_DB_HOST=mysql:3306 -e WORDPRESS_DB_USER=root -e WORDPRESS_DB_PASSWORD=123456 -e WORDPRESS_DB_NAME=wordpress -v /root/wordpress/html:/var/www/html –restart=always wordpress:latest
4. 系统/调试类
Ubuntu(交互式进入容器)
docker run -it –rm ubuntu:latest bash
Alpine(轻量Linux,调试用)
docker run -it –rm alpine:latest sh
CentOS
docker run -it –rm centos:latest bash
5. 其他常用服务
Node.js(运行前端/后端项目)
docker run -d -p 3000:3000 –name node -v /root/node/app:/usr/src/app –restart=always node:latest node /usr/src/app/app.js
Python(运行Python脚本)
docker run -it –rm -v /root/python:/app python:3.11 python /app/script.py
Minecraft(我的世界服务器)
docker run -d -p 25565:25565 –name mc -v /root/mc/data:/data –restart=always itzg/minecraft-server:latest
四、完整参数速查表(进阶用)
1. 运行控制类
参数 作用
-d, –detach 后台运行
-it, -i -t 交互式终端
–rm 停止后自动删除
–restart=always 开机自启
–name 名称 指定容器名
-h, –hostname 指定容器主机名
2. 网络类
参数 作用
-p 主机端口:容器端口 端口映射
-P 随机映射所有容器端口
–network=host 主机网络模式(共享主机网络)
–add-host 主机名:IP 自定义hosts解析
3. 存储类
参数 作用
-v 主机目录:容器目录 目录挂载
–volume 数据卷名:容器目录 命名数据卷挂载
–tmpfs /tmp 临时文件系统(内存存储)
4. 环境/资源类
参数 作用
-e 变量名=值 设置环境变量
–env-file 文件路径 从文件加载环境变量
–memory=1g 限制容器内存
–cpus=1 限制CPU核心数
五、使用注意事项(避坑指南)
1. 镜像标签必须规范:nginx:latest 是最新版,生产环境建议指定具体版本(如 nginx:1.25),避免自动更新导致兼容问题。
2. 端口冲突:主机端口不能被其他服务占用,否则容器启动失败(如80端口被占用,可改为 8080:80)。
3. 数据持久化:数据库、配置文件必须用 -v 挂载到主机,否则容器删除后数据会丢失。
4. 权限问题:挂载目录时,确保主机目录有读写权限(可通过 chmod 777 /root/xxx 临时解决)。
5. 手机面板限制:部分手机Docker管理App(如「Docker」「Portainer移动端」)对长命令支持有限,建议复杂命令先在电脑测试,再复制到手机。
六、快速上手示例(直接复制到输入框)
示例1:一键部署Nginx(带端口+自启)
docker run -d -p 80:80 –name my-nginx –restart=always nginx:latest
执行后,访问服务器IP就能看到Nginx默认页面。
示例2:一键部署Portainer(Docker可视化管理)
docker run -d -p 9000:9000 –name portainer –restart=always -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer-ce:latest
执行后,访问 http://服务器IP:9000 就能用图形化界面管理所有容器,比手机命令更方便。
