docker run
包与运行时
用法
docker run [-d] [-p <host>:<container>] <image> [command]每次都会从镜像新建并启动一个容器,所以敲两次就有两个容器,重启已有的那个要用 docker start;不加 -p 主机访问不到,不加 -v 写下的东西会随容器一起消失。
常用选项
| 选项 | 含义 |
|---|---|
| -d | run in the background and print the id |
| -p 8080:80 | publish a container port on the host |
| -it | interactive with a terminal, for a shell |
| --rm | delete the container when it exits |
| -v <host>:<path> | mount a host folder or named volume |
| -e KEY=value | set an environment variable |
| --name <name> | give it a name instead of a random one |
| --network <net> | attach it to a network |
示例
docker run --rm -it ubuntu basha throwaway shell in a container
docker run -d -p 8080:80 --name web nginxnginx in the background, reachable on localhost:8080
docker run --rm -v "$PWD":/app -w /app node:22 npm testruns your tests in a container without installing node
问题永远是什么装到哪里:装进这个项目,还是装到整台机器上。
怎么看
- 方括号 [ ] 表示这部分可以不写。
- 省略号 … 表示可以写多个。
- 选项区分大小写——有些命令里 -r 和 -R 不是一回事。
常见问题
Q. docker run 是做什么的?
每次都会从镜像新建并启动一个容器,所以敲两次就有两个容器,重启已有的那个要用 docker start;不加 -p 主机访问不到,不加 -v 写下的东西会随容器一起消失。
Q. 怎么写?
docker run [-d] [-p <host>:<container>] <image> [command] —— 方括号表示可以省略的部分。
Q. 值得记的选项有几个?
这里列了 8 个,完整列表在 man docker。这条命令属于包与运行时。
相关命令
man 手册: man docker-run