容器的常用命令

  • 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

docker重启容器henman docker重启容器定时_bc

3. 查看容器内运行的进程

docker top 容器ID

docker top fa1b4f053e35

docker重启容器henman docker重启容器定时_docker_02

4. 查看容器内部细节

docker inspect 容器ID

docker重启容器henman docker重启容器定时_bc_03

5. 进入容器

  • exec命令 : docker exec [OPTIONS] CONTAINER COMMAND [ARG…]
docker exec -it 1bebc2471ec8 /bin/bash   ---> 进入容器

docker重启容器henman docker重启容器定时_docker_04

docker exec -it 1bebc2471ec8 ls   ---> 执行ls命令

docker重启容器henman docker重启容器定时_bc_05

  • attach命令 : docker attach CONTAINER
docker attach 1bebc2471ec8

docker重启容器henman docker重启容器定时_docker重启容器henman_06

备注: 上述两个区别
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

展示一个镜像形成历史

images

l列出系统当前镜像

import

从tar包中的内容创建一个新的文件系统映像【对应export】

info

显示系统相关信息

inspect

查看容器详细信息

kill

kill指定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

截取容器停止时的退出状态值