1 启动守护式容器 docker run -d
fa7ff04b376967d443cf8fdf160ba40ce269bf3cd21118553dfe1b6faf6532ce 是启动的容器的id
但是docker ps一下发现并没有活着的进程?因为docker容器后台运行,就必须有一个前台进程
容器运行的命令 如果不是那些一直挂起的命令(比如运行top、tail),就会自动退出
这个是docker的机制问题,比如你的web容器,我们以nginx为例,正常情况下,我们配置启动服务只需要启动响应的service即可。例如
service nginx start
但是,这样做的nginx为后台进程模式运行,就导致docker前台没有运行的应用,
这样的容器后台启动后,会立即自杀。因为他觉得没事可以做了。所以,最佳的解决方案是,将你要运行的程序以前台进程的形式运行
2 查看容器日志 docker logs 容器id
2.1 -t是加入时间戳
2.2 -f 跟随最新的日志打印
2.3 --tail数字 显示最后多少条
https://www.runoob.com/docker/docker-logs-command.html更多使用方法
3 查看容器内运行的进程 docker top 容器id
相当于linux也有top命令查看进程
4 查看容器内部细节 docker inspect 容器id
5 进入正在运行的容器并以命令行交互
5.1 重新进入docker attach 容器id
启动一个容器
在另一个窗口进入
按ctrl+Q+P退出
5.2 docker exec -it 容器id bashShell
OPTIONS说明:
-
-d :分离模式: 在后台运行
-
-i :即使没有附加也保持STDIN 打开
-
-t :分配一个伪终端
在宿主机外面执行,没有进入容器。
5.3 exec与attach的区别
attach:
直接进入容器启动命令的终端,不会启动新的进程
exec:
在容器中打开新的终端,并且可以启动新的进程。功能更强大,可以在外面操控容器内部。
attach 相当于 docker exec -t 容器id /bin/bash
这样也可以进入容器
6 从容器内的数据拷贝文件到主机上 docker cp 容器id:容器内路径 目的主机路径
docker cp a0c38e6f2640:/tmp/ks-script-eusq_sc5 ~