在linux环境中使用docker时,首先需要确认docker服务是否正常运行,只有服务处于活跃状态,才能正常执行容器创建、启动、停止等相关操作。如果docker未运行,所有docker命令都会返回连接错误,因此掌握查看docker运行状态的方法是基础操作。
方法一:通过systemctl命令查看系统服务状态
大多数现代linux发行版(如Ubuntu 16.04+、CentOS 7+)都使用systemd作为服务管理工具,docker安装后会注册为系统服务,因此可以直接通过systemctl命令查看状态。
执行以下命令:
# 查看docker服务状态 systemctl status docker
如果输出中包含active (running)字样,说明docker正在运行;如果显示inactive (dead)则表示服务未启动。如果服务未运行,可以通过以下命令启动:
# 启动docker服务 sudo systemctl start docker # 设置开机自启 sudo systemctl enable docker
方法二:使用docker自带命令验证服务可用性
如果docker服务正常运行,执行docker相关命令时会返回正常结果,我们可以通过执行简单的docker命令来验证。
执行以下命令:
# 查看docker版本信息 docker version
如果输出中同时包含Client和Server两部分的信息,说明docker服务正在运行;如果只显示Client部分,且提示无法连接到docker daemon,说明docker服务未启动。
也可以执行以下命令查看docker的系统信息:
# 查看docker系统信息 docker info
该命令能正常返回信息,同样说明docker处于运行状态。
方法三:通过进程查询确认docker运行
docker运行时会启动对应的守护进程,我们可以通过查询进程的方式确认是否存在docker相关进程。
执行以下命令:
# 查询docker进程 ps -ef | grep docker | grep -v grep
如果输出中包含dockerd相关的进程信息,说明docker正在运行;如果没有任何输出,说明docker进程未启动。
方法四:检查docker监听端口
默认情况下,docker守护进程会监听本地的unix socket文件/var/run/docker.sock,部分场景下也会配置监听TCP端口,我们可以通过检查端口占用情况确认。
执行以下命令:
# 检查docker默认socket文件是否存在 ls -l /var/run/docker.sock
如果该文件存在且有权限访问,说明docker服务正在运行。如果是配置了TCP监听的情况,可以通过以下命令检查端口:
# 检查2375端口(docker默认TCP端口)占用情况 netstat -tlnp | grep 2375
如果有对应的监听记录,说明docker正在运行。
常见问题排查
如果执行上述方法后发现docker未运行,可以先检查docker是否安装成功:
# 检查docker是否安装 docker --version
如果提示命令不存在,说明docker未安装,需要先完成docker的安装。如果已经安装但无法启动,可以查看docker的日志排查错误原因:
# 查看docker服务日志 journalctl -u docker.service -f
通过日志信息可以定位启动失败的具体原因,比如端口冲突、配置文件错误等,针对性解决问题后即可正常启动docker服务。