docker run 命令
用于從鏡像創建并啟動一個新的容器。
基本語法:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
常用選項分類說明
- 容器配置
--name
為容器指定名稱(默認隨機生成)。
示例:docker run --name my_container nginx
--rm
容器退出后自動刪除容器(適用于臨時測試)。
示例:docker run --rm alpine echo "Hello"
-it
以交互模式運行容器(通常與 /bin/bash 或 sh 結合使用)。
示例:docker run -it ubuntu /bin/bash
- 資源限制
- -m 或 --memory
限制容器內存使用(支持 b/k/m/g)。
示例:docker run -m 512m nginx
- –cpus
限制容器使用的 CPU 核心數。
示例:docker run --cpus=1.5 nginx
- –cpu-shares
設置 CPU 權重(默認 1024,相對比例)。
示例:docker run --cpu-shares=512 nginx
- 網絡設置
- -p 或 --publish
映射容器端口到主機(格式:主機端口:容器端口)。
示例:docker run -p 8080:80 nginx # 主機 8080 → 容器 80
- -P 或 --publish-all
自動映射容器所有暴露的端口到主機隨機端口。
示例:docker run -P nginx
- –network
指定容器使用的網絡(如 host、bridge、自定義網絡)。
示例:docker run --network=host nginx
- 存儲卷(Volume)
- -v 或 --volume
掛載主機目錄或命名卷到容器(格式:主機路徑:容器路徑[:權限])。
示例:docker run -v /data:/app/data nginx # 掛載目錄 docker run -v my_volume:/app/data nginx # 使用命名卷
- –mount
更詳細的掛載配置(支持類型 bind、volume、tmpfs)。
示例:docker run --mount type=bind,source=/data,target=/app/data nginx
- 環境變量
- -e 或 --env
設置容器內的環境變量。
示例:docker run -e MY_ENV=value nginx
- –env-file
從文件讀取環境變量。
示例:docker run --env-file=env.list nginx
- 元數據與標簽
- -l 或 --label
為容器添加元數據標簽。
示例:docker run -l "env=prod" nginx
- 日志與輸入輸出
- -d 或 --detach
后臺運行容器(守護進程模式)。
示例:docker run -d nginx
- –log-driver
指定日志驅動(如 json-file、syslog、none)。
示例:docker run --log-driver=syslog nginx
- 安全設置
- –user
指定容器內進程的用戶(UID 或用戶名)。
示例:docker run --user=1000 nginx
- –security-opt
設置 SELinux 或 AppArmor 配置。
示例:docker run --security-opt seccomp=unconfined nginx
- –cap-add/–cap-drop
添加或刪除容器的 Linux 能力(Capabilities)。
示例:docker run --cap-add=SYS_ADMIN nginx
- 其他常用選項
- –restart
容器退出時的重啟策略(no/on-failure/always/unless-stopped)。
示例:docker run --restart=always nginx
- –entrypoint
覆蓋鏡像的默認入口點(Entrypoint)。
示例:docker run --entrypoint /bin/sh nginx
- –privileged
賦予容器特權模式(慎用,可能影響宿主機安全)。
示例:docker run --privileged nginx
示例場景 - 運行 Nginx 并映射端口
docker run -d --name web -p 80:80 nginx
- 啟動交互式 Ubuntu 容器
docker run -it ubuntu /bin/bash
- 掛載目錄并設置環境變量
docker run -v /host/data:/app/data -e APP_ENV=prod my-app
- 限制資源并自動清理
docker run --rm -m 1g --cpus=2 alpine sh -c "echo 'Hello World'"
總結
使用 docker run --help 查看完整參數列表。
根據需求組合選項,如后臺運行、端口映射、資源限制等。
生產環境中建議明確指定資源限制和重啟策略。