『重用』容器名
|
|
可以在运行 docker run
时候加上--rm
flag, 容器将在退出之后销毁。无需手动docker rm CONTAINER
|
|
debug Dockerfile
如果build 失败可以直接 查看stdout的错误信息,拆分指令,重新build。
logs 查看 stdout
所有容器内写到stdout的内容都会被捕获到host中的一个history文件中, 可以通过 docker logs CONTAINER
查看。
|
|
在使用docker logs
的时候加一些参数来过滤log,默认输出所有log。
|
|
attach 实时查看stdout
如果你想实时查看容器的输出你可以用 docker attach CONTAINER
命令。
默认会绑定stdin,代理signals, 所以如果你 ctrl-c
容器通常会退出。很多时候大家并不想这样,只是想分离开,可以ctrl-p ctrl-q
。
执行任意command
可以通过docker exec CONTAINER COMMAND
,来在容器内执行任意 command,比如 cat 一些东西来debug。
|
|
也可以直接通过 exec 在容器内启动一个 shell 更方便地调试容器,不必一条条执行docker exec
。
|
|
docker exec
只能在正在运行的容器上使用,如果已经停止了退出了就不行了,就只好用 docker logs
了。
重写entrypoint和cmd
每个Docker镜像都有 entrypoint
和 cmd
, 可以定义在 Dockerfile
中,也可以在运行时指定。这两个概念很容易混淆,而且它们的试用方式也不同。
|
|
|
|
任何 docker run
命令中在image名后的内容都作为cmd
的内容传给 entrypoint
当参数。
暂停容器
使用 docker pause
可以暂停容器中所有进程。这非常有用。
|
|
top 和 stats 获得容器中进程的状态
docker top CONTAINER
和在容器里执行 top
的效果类似。
|
|
通过 inspect 查看容器的详细信息
docker inspect CONTAINER
饭后镜像和容器的详细信息。比如:
- State —— 容器的当先状态
- LogPath —— history(stdout) file 的路径
- Config.Env —— 环境变量
- NetworkSettings.Ports —— 端口的映射关系