Docker run 命令
docker run 命令用于创建并启动一个新的容器。
语法
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
常用参数说明:
-d
: 后台运行容器并返回容器 ID。-it
: 交互式运行容器,分配一个伪终端。--name
: 给容器指定一个名称。-p
: 端口映射,格式为host_port:container_port
。-v
: 挂载卷,格式为host_dir:container_dir
。--rm
: 容器停止后自动删除容器。--env
或-e
: 设置环境变量。--network
: 指定容器的网络模式。--restart
: 容器的重启策略(如no
、on-failure
、always
、unless-stopped
)。-u
: 指定用户。
实例
1. 基本使用
docker run ubuntu
拉取 ubuntu 镜像并在前台启动一个容器。
2. 后台运行容器
docker run -d ubuntu
在后台运行 ubuntu 容器并返回容器 ID。
3. 交互式运行并分配终端
docker run -it ubuntu /bin/bash
以交互模式运行 ubuntu 容器,并启动一个 Bash shell。
4. 指定容器名称
docker run --name my_container ubuntu
运行一个 ubuntu 容器,并将其命名为 my_container。
5. 端口映射
docker run -p 8080:80 nginx
将本地主机的 8080 端口映射到容器内的 80 端口,运行 nginx 容器。
6. 挂载卷
docker run -v /host/data:/container/data ubuntu
将主机的 /host/data 目录挂载到容器内的 /container/data 目录。
7. 设置环境变量
docker run -e MY_ENV_VAR=my_value ubuntu
设置环境变量 MY_ENV_VAR 的值为 my_value,运行 ubuntu 容器。
8. 使用网络模式
docker run --network host nginx
使用主机的网络模式运行 nginx 容器。
9. 指定重启策略
docker run --restart always nginx
设置容器的重启策略为 always,即使容器停止也会自动重启。
10. 指定用户
docker run -u user123 ubuntu
以 user123 用户运行 ubuntu 容器。
11. 组合多个选项
docker run -d -p 8080:80 -v /host/data:/data --name webserver nginx
后台运行一个命名为 webserver 的 nginx 容器,将主机的 8080 端口映射到容器的 80 端口,并将主机的 /host/data 目录挂载到容器的 /data 目录。
雷恩
ois***2@asd.com
参考地址
在 Docker 容器退出时,默认容器内部的文件系统仍然被保留,以方便调试并保留用户数据。
但是,对于 foreground 容器,由于其只是在开发调试过程中短期运行,其用户数据并无保留的必要,因而可以在容器启动时设置 --rm 选项,这样在容器退出时就能够自动清理容器内部的文件系统。
示例如下:
等价于:
显然,--rm 选项不能与 -d 同时使用(或者说同时使用没有意义),即只能自动清理 foreground 容器,不能自动清理detached容器。
注意,--rm 选项也会清理容器的匿名data volumes。
所以,执行 docker run 命令带 --rm命令选项,等价于在容器退出后,执行 docker rm -v。
雷恩
ois***2@asd.com
参考地址