问题描述

第一天,在vm虚拟机中安装了ubuntu16.0.4系统,安装docker并pull的MySQL5.7镜像,启动了容器,使用sqlyog连接正常。

由于要睡觉,于是把vm虚拟机挂起客户端,第二天重新启动vm虚拟机,使用xshell连接,查看容器运行正常,打开idea,准备开发,跑起项目,发现报错,无法连接远程数据库。开始排除,查看端口lsof -i:3306,发现也是开发的,开始懵了。
在这里插入图片描述
最后解决办法:

  1. 重启docker服务,systemctl restart docker
  2. 重新启动容器,docker restart daca2576c021(容器ID)
  3. 重新连接成功

在这里插入图片描述

如果还是不行可以尝试systemctl restart NetworkManager docker命令

环境

docker安装在Centos7上,机器重启后,发现docker里服务都没启动。

查看后台容器运行

% docker ps -a
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

原来是docker服务没有启动。需要把它设置为开机启动。

设置docker服务开机启动

先启动服务,再设置为开机自动启动:

# 启动服务
% systemctl start docker

# 设置开机自启动
% systemctl enable docker.service
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.

在这里插入图片描述

查看是否设置成功:

% systemctl list-unit-files | grep enable | grep docker
docker.service                                enabled 

设置镜像自动启动

docker启动后,查看所有镜像状态,发现未启动:

% docker ps -a
CONTAINER ID   IMAGE                        COMMAND                 CREATED        STATUS                    PORTS     NAMES
d5c440e6d44f   tarscloud/tars-node:latest   "/sbin/entrypoint.sh"   5 months ago   Exited (0) 11 hours ago             tars

先启动,再设置自动启动:

# 启动
docker start d5c440e6d44f
# 自动启动
docker update --restart=always d5c440e6d44f

使用docker run启动时加--restart=always

再次查看状态:

% docker ps -a
CONTAINER ID   IMAGE                        COMMAND                 CREATED        STATUS          PORTS     NAMES
d5c440e6d44f   tarscloud/tars-node:latest   "/sbin/entrypoint.sh"   5 months ago   Up 5 minutes             tars

小结

  • 对于常驻服务,最好在安装配置时就设定好开机自启动,如docker
  • 对于镜像,应该在创建时就指定自动启动,docker run 带参数--restart=always

`

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐