有学有练才叫学习:学而不思则罔,思而不学则殆:学而不习,纸上谈兵,习而不进,画地为牢!

Docker开机自动启动(配置docker开机自动启动)教程步骤

linux 炮渣日记 4周前 (11-09) 269次浏览 已收录 0个评论 扫描二维码

docker安装之后默认并不会自动启动服务,需要手动来启动docker。当重启电脑之后我们同样也需要手动启动docker服务,这样不仅麻烦,当出现停电重启等异常时还会导致服务无法被正常访问。所以我们有必要设置下docker开机自动启动,以保证服务能及时恢复运行。

Docker开机自动启动(配置docker开机自动启动)教程步骤

查看docker的运行状态

docker自动启动主要分为服务自动启动和容器自动启动,我们先来查看下docker服务是否启动。执行命令:systemctl status docker可以查看docker的运行状态,这里我们可以看到刚开机的Centos中Active: inactive (dead)(也就是未启动)。如果启动了则是 Active: active (running) since 五 2020-10-02 14:30:17 CST; 2s ago,后面起启动时间。

Docker开机自动启动(配置docker开机自动启动)教程步骤

自动启动docker服务

启动docker在前面我们已经说到,通过命令:systemctl start docker就可以来启动docker服务。设置docker服务自启动可以通过命令:systemctl enable docker.service来实现,如果你想禁止服务自启动则可以通过命令:systemctl disable docker.service来关闭自动启动。 查看docker服务是否自动启动可以执行命令:systemctl is-enabled docker.service来查看状态,enabled则说明已设置自动启动。

Docker开机自动启动(配置docker开机自动启动)教程步骤

查看docker容器是否启动

一般情况下将docker服务设置了自动启动之后docker容器同样不会自动启动,前面我们拉取了一个hello-world的镜像示例我们来查看下是否启动。执行命令:docker ps 会列出所有正在运行的容器,而docker ps -a 可以查看所有容器(显示所有的容器,包括未运行的)。

Docker开机自动启动(配置docker开机自动启动)教程步骤

自动启动docker容器

通过上面的配置我们已经实现了doker服务的开启自动启动,但是光启动docker服务并不能访问我们部署的服务。我们还需要将对应的docker容器也启动才能获取服务,所以这时候我们需要docker容器也可以随着docker服务的启动随之启动。在创建容器时添加参数 –restart=always 后,当docker重启时容器会自动启动。

Docker开机自动启动(配置docker开机自动启动)教程步骤

容器后台运行

执行docker ps -a命令后可以看到hello-world镜像的容器信息,但是这里发现刚运行的容器到查看时就已经处于Exited(退出状态),所以执行docker ps命令不会显示hello-world镜像的容器信息。那么我们要希望在退出容器之后容器仍然在后台运行怎么办呢?这里我们在运行容器的时候就需要添加一个参数-d让容器在后台运行,这样容器的状态就是在更新时间而不是Exited状态了。

Docker开机自动启动(配置docker开机自动启动)教程步骤

总结:

docker run的参数可以相当的长,每次手动启动容器都觉得非常的困难。这里还是设置成自启动,可以省心不少。以上内容是小编给大家分享的【Docker实战004:配置docker开机自动启动】,希望对大家有所帮助。如果大家有任何疑问请给我留言,小编会及时回复大家的。

为了方便学习,下面附上本文用到的源码:

//查看docker的运行状态
# systemctl status docker
 docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
   Active: inactive (dead)
     Docs: https://docs.docker.com
# systemctl enable docker.service
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
# systemctl is-enabled docker.service
enabled
 # docker ps //Docker已启动,但是没有正在运行的容器
CONTAINER ID   IMAGE     COMMAND      CREATED      STATUS        PORTS          NAMES
# docker ps -a  //Docker已启动,有运行容器已退出
CONTAINER ID  IMAGE       COMMAND     CREATED      STATUS        PORTS           NAMES
7d18fe5d8723  hello-world "/hello"   2 minutes ago Exited (0) 2 minutes ago      brave_hermann
# docker ps -a  //Docker未启动
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
 --restart string      // Restart policy to apply when a containerb exits (default "no")
           no         -  容器退出时,不重启容器;
           on-failure - 只有在非0状态退出时才从新启动容器;
           always     - 无论退出状态是如何,都重启容器;
# docker run nginx
# docker ps -a
CONTAINER ID    IMAGE        COMMAND                CREATED          STATUS        PORTS         NAMES
678b40604a99    nginx        "/docker-entrypoint.…" 47 seconds ago   Exited (0) 9 seconds ago   epic_shannon
#docker run -d nginx
# docker ps -a
CONTAINER ID    IMAGE   COMMAND                CREATED           STATUS             PORTS       NAMES
cc3641d59c2b    nginx  "/docker-entrypoint.…" About a minute ago Up About a minu
喜欢 (1)
炮渣日记
关于作者:
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址