daemon.json无法启动docker_Docker实战004:配置docker开机自动启动

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

34d245afd772d5e4b4c516b3c0fdfb7c.png

查看docker的运行状态

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

3a0095766e946b90480df8dc2df3cd79.png

自动启动docker服务

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

6e14b113851a458f86fba7a410fb43ff

查看docker容器是否启动

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

4c06f160de25ef38e0b9e391ba23f09c.png

自动启动docker容器

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

da36404db158acf8e100bf04465a738f.png

容器后台运行

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

7650efaf4e6da6b50a38443abd4b44d0.png

总结:

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.serviceCreated symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.# systemctl is-enabled docker.serviceenabled # docker ps //Docker已启动,但是没有正在运行的容器CONTAINER ID   IMAGE     COMMAND      CREATED      STATUS        PORTS          NAMES# docker ps -a  //Docker已启动,有运行容器已退出CONTAINER ID  IMAGE       COMMAND     CREATED      STATUS        PORTS           NAMES7d18fe5d8723  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 -aCONTAINER ID    IMAGE        COMMAND                CREATED          STATUS        PORTS         NAMES678b40604a99    nginx        "/docker-entrypoint.…" 47 seconds ago   Exited (0) 9 seconds ago   epic_shannon#docker run -d nginx# docker ps -aCONTAINER ID    IMAGE   COMMAND                CREATED           STATUS             PORTS       NAMEScc3641d59c2b    nginx  "/docker-entrypoint.…" About a minute ago Up About a minute  80/tcp  silly_wu
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值