Docker命令-run

命令

docker run

描述

Run a command in a new container
运行容器

用法

1
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

选项

1
2
3
4
5
6
7
8
9
Options:
--detach , -d Run container in background and print container ID
其他选项参考create命令,除了以上的--detach选项外其他选项两个命令通用

--restart 重启策略
no 容器退出后不重启容器,此为默认策略
always 总是重启容器,不管容器是否为异常退出
on-failure[:max-retries] 当容器异常退出(状态码为非0)时重启容器,可以设置最大重启次数
unless-stopped 当容器被手动停止或docker服务停止(或重启)时不重启容器

注意

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
$ docker run --name test -it debian
$ docker run -it --rm ubuntu bash
$ docker run -it --privileged ubuntu bash
$ docker run -w /path/to/dir/ -it ubuntu pwd
# 挂载本地目录到容器,并指定容器的工作目录
$ docker run -v /doesnot/exist:/foo -w /foo -it ubuntu bash
# 只读挂载
$ docker run --read-only -v /icanwrite busybox touch /icanwrite/here
$ docker run -p 127.0.0.1:80:8080/tcp ubuntu bash
$ docker run --expose 80 ubuntu bash
# 指定容器环境变量
$ docker run -e MYVAR1 --env MYVAR2=foo --env-file env.list ubuntu bash
$ docker run --env VAR1=value1 --env VAR2=value2 ubuntu env | grep VAR
$ docker run --env-file env.list ubuntu env | grep VAR
# 指定容器标签
$ docker run -l my-label --label com.example.foo=bar ubuntu bash
$ docker run --label-file labels ubuntu bash
$ docker run -itd --network=my-net busybox
$ docker run --volumes-from 777f7dc92da7 --volumes-from ba8c0c54f0f2:ro -it ubuntu pwd
$ docker run -it --rm --gpus all ubuntu nvidia-smi
$ docker run --restart=always redis
# 指定hosts记录
$ docker run --add-host=docker:192.168.10.10 --rm -it alpine