【Docker】创建并运行容器:docker run 命令及所有参数详解
📌 docker run 命令及所有参数详解
docker run 命令用于基于某个 Docker 镜像 创建并运行一个 容器。以下是完整的 docker run 语法:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
其中:
IMAGE:指定镜像名称(如nginx:latest)。COMMAND:指定运行的命令(如bash)。ARG:传递给COMMAND的参数。
🚀 1. docker run 常用参数
-d / --detach-it-i 保持 STDIN,-t 分配终端)--rm--name -p :-p 8080:80)-v :-v /data:/app)-e -e ENV=prod)--restart=no,always,unless-stopped,on-failure)--network=bridge、host、none、container:)--privileged--cpus=--cpus=2.5)--memory=--memory=512m)🚀 2. docker run 命令的完整参数详解
以下是 docker run 的所有常见参数及详细解释:
🔹 1. 容器运行模式
-d / --detach-i / --interactive-t / --tty-i 结合使用)--rm--name -a / --attachSTDIN, STDOUT, STDERR📌 示例:
docker run -it --rm ubuntu bash # 交互模式运行 Ubuntu,退出后自动删除容器docker run -d --name myapp nginx # 后台运行 nginx 容器
🔹 2. 端口映射
-p :-p 8080:80)-P / --publish-all📌 示例:
docker run -d -p 8080:80 nginx # 访问 http://localhost:8080
🔹 3. 数据卷挂载
-v :-v /data:/app)--mount type=bind,source=,target=--tmpfs --read-only📌 示例:
docker run -it -v /home/user/data:/app ubuntu bash # 容器内 /app 目录映射到宿主机 /home/user/data
🔹 4. 资源限制
--cpus=--cpus=2)--memory=--memory=512m)--memory-swap=--oom-kill-disable--device=:📌 示例:
docker run -d --cpus=2 --memory=512m nginx # 限制 nginx 运行时使用 2 核 CPU 和 512MB 内存
🔹 5. 环境变量
-e =--env-file 📌 示例:
docker run -d -e ENV=production -e PORT=8080 myapp
🔹 6. 网络配置
--network=bridge--network=host--network=none--network=--ip=📌 示例:
docker run -d --network=host nginx # 让容器使用宿主机网络
🔹 7. 重启策略
--restart=no--restart=always--restart=unless-stopped--restart=on-failure[:次数]📌 示例:
docker run -d --restart=always nginx # 永久运行 nginx
🔹 8. 容器权限
--privileged--cap-add=--cap-drop=--security-opt seccomp=unconfined📌 示例:
docker run -d --privileged myapp # 允许容器访问所有宿主机资源docker run -d --cap-add=NET_ADMIN myapp # 仅允许修改网络配置
🔹 9. 指定用户
-u --group-add 📌 示例:
docker run -it -u 1000:1000 ubuntu bash # 以 UID=1000, GID=1000 运行容器
📌 10. docker run 经典示例
1️⃣ 运行 Nginx
docker run -d --name mynginx -p 8080:80 nginx
2️⃣ 运行 MySQL
docker run -d --name mysql-server \\ -e MYSQL_ROOT_PASSWORD=123456 \\ -v /data/mysql:/var/lib/mysql \\ -p 3306:3306 \\ mysql:latest
3️⃣ 运行 Python 应用
docker run -it --rm -v $(pwd):/app python:3.9 bash
4️⃣ 运行 Redis 并限制资源
docker run -d --name myredis \\ --memory=512m --cpus=2 \\ -p 6379:6379 redis
📌 11. 总结
-d-it-p 8080:80-v /data:/app--memory=512m--cpus=2--network=host--restart=always🚀 3. docker run 使用示例合集
# 后台运行 Nginxdocker run -d --name mynginx -p 8080:80 nginx# 交互模式运行 Ubuntu,并在退出时删除容器docker run -it --rm ubuntu bash# 运行 MySQL 并设置密码docker run -d --name mysql-server -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 mysql# 限制 CPU 和内存的 Redis 容器docker run -d --name myredis --memory=512m --cpus=2 -p 6379:6379 redis# 运行 Python 并挂载当前目录docker run -it --rm -v $(pwd):/app python:3.9 bash# 运行 BusyBox 并加入已有容器网络docker run -it --network=container:mycontainer busybox sh


