容器的常用命令
1. 启动守护式容器2. 查看容器日志3. 查看容器内运行的进程4. 查看容器内部细节5. 进入容器6. 从容器内拷贝文件到主机上7. 命令总结
1. 启动守护式容器
docker run -d 镜像名称
docker run -d centos
使用镜像centos:latest以后台模式运行一个容器 docker run -d centos
问题: 然后docker ps -a进行查看, 会发现容器已经退出 很重要的要说明的一点: Docker容器后台运行,就必须有一个前台进程 容器运行的命令如果不是那些一直挂起的命令(比如运行top,tail), 就会自动退出的。
这个是docker的机制问题,比如你的web容器,我们以nginx为例, 正常情况下,我们配置启动服务只需要启动响应的service即可。例如service nginx start 但是,这样做,nginx为后台进程模式运行,就导致docker前台设置没有运行的应用,这样的容器后台启动后,会立即自杀因为他觉得他没事可做了。 所以最佳的解决方案是,将你要运行的程序以前台进程的形式运行。
2. 查看容器日志
docker logs [OPTIONS] 容器ID
OPTIONS参数说明:
-f : 查看实时日志-t: 跟随最新的日志打印–tail 数字 : 显示最后多少条
docker logs -t fa1b4f053e35
3. 查看容器内运行的进程
docker top 容器ID
docker top fa1b4f053e35
4. 查看容器内部细节
docker inspect 容器ID
5. 进入容器
exec命令 : docker exec [OPTIONS] CONTAINER COMMAND [ARG…]
docker exec -it 1bebc2471ec8 /bin/bash ---> 进入容器
docker exec -it 1bebc2471ec8 ls ---> 执行ls命令
attach命令 : docker attach CONTAINER
docker attach 1bebc2471ec8
备注: 上述两个区别 attach直接进入容器启动命令的终端, 不会启动新的进程。exit退出就会导致容器stop exec是在容器中打开新的终端,并且可以启动新的进程。 这个命令exit退出,ok容器还在运行
6. 从容器内拷贝文件到主机上
docker cp 容器ID:容器内路径 目的主机路径
docker cp 1bebc2471ec8:/tmp/yum.log /root
7. 命令总结
命令说明
attach当前shell下attach连接指定运行镜像build通过Dockefile定制镜像commit提交当前容器为新的镜像cp从容器中拷贝指定文件或目录到宿主机中create创建一个新的容器, 同run, 但不启动容器diff查看docker容器变化events从docker服务获取容器实时事件exec在已存在的容器上运行命令export导出容器的内容流作为一个tar归档文件【对应import】history展示一个镜像形成历史imagesl列出系统当前镜像import从tar包中的内容创建一个新的文件系统映像【对应export】info显示系统相关信息inspect查看容器详细信息killkill指定docker容器load从一个tar包中加载一个镜像【对应save】login注册或登录一个docker服务器logout从当前Docker Register退出logs输出当前容器日志信息port查看映射端口对应的容器pause暂停容器ps列出容器列表pull从docker镜像源服务器拉取指定镜像或者库镜像push推送指定镜像或者库镜像至docker源服务器restart重启运行的容器rm移除一个或者多个容器rmi移除一个或多个镜像【无容器使用镜像才可删除,否则需删除相关容器才可继续或 -f 强制删除】run创建一个新的容器并运行一个命令save保存一个镜像为tar包【对应load】search在docker hub中搜索镜像start启动容器stop停止容器tag给源中镜像打标签top查看容器中运行的进程信息unpause取消暂停容器version查看docker版本wait截取容器停止时的退出状态值