Docker docker run 完整命令指南(含常用应用场景)

一、核心语法(必须掌握)

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 就能用图形化界面管理所有容器,比手机命令更方便。

发表评论

滚动至顶部
💬
微信

扫码加微信
BA7JDB