网站首页 > 精选教程 正文
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在前面我们已经说到,通过命令:systemctl start docker就可以来启动docker服务。设置docker服务自启动可以通过命令:systemctl enable docker.service来实现,如果你想禁止服务自启动则可以通过命令:systemctl disable docker.service来关闭自动启动。 查看docker服务是否自动启动可以执行命令:systemctl is-enabled docker.service来查看状态,enabled则说明已设置自动启动。
查看docker容器是否启动
一般情况下将docker服务设置了自动启动之后docker容器同样不会自动启动,前面我们拉取了一个hello-world的镜像示例我们来查看下是否启动。执行命令:docker ps 会列出所有正在运行的容器,而docker ps -a 可以查看所有容器(显示所有的容器,包括未运行的)。
自动启动docker容器
通过上面的配置我们已经实现了doker服务的开启自动启动,但是光启动docker服务并不能访问我们部署的服务。我们还需要将对应的docker容器也启动才能获取服务,所以这时候我们需要docker容器也可以随着docker服务的启动随之启动。在创建容器时添加参数 --restart=always 后,当docker重启时容器会自动启动。
容器后台运行
执行docker ps -a命令后可以看到hello-world镜像的容器信息,但是这里发现刚运行的容器到查看时就已经处于Exited(退出状态),所以执行docker ps命令不会显示hello-world镜像的容器信息。那么我们要希望在退出容器之后容器仍然在后台运行怎么办呢?这里我们在运行容器的时候就需要添加一个参数-d让容器在后台运行,这样容器的状态就是在更新时间而不是Exited状态了。
总结:
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 minute 80/tcp silly_wu
猜你喜欢
- 2024-09-24 jenkins+nginx自动发布一
- 2024-09-24 keepalived+nginx实现高可用web
- 2024-09-24 老何建议:关于Linux运行级别和独立服务的自启动
- 2024-09-24 centos codecombat配置数据库及web服务开机自启动
- 2024-09-24 Linux自定义开机自启动服务脚本
- 2024-09-24 搭建ECS云服务器(5)设置nginx+fastdfs+tomcat+redis开启自启动
- 2024-09-24 教程 |Windows使用WinSW实现开机自启动服务
你 发表评论:
欢迎- 最近发表
-
- java 服务之间调用(rpc)(java实现服务器)
- Java机器学习库(Java ML)(二、聚类)
- 「Java库」如何使用优秀的加密库Jasypt来保护你的敏感信息?
- GitHub精选 | 轻量级Android和Java日志库
- Java面试官:MySQL binlog 有什么作用?主从延迟的了解么?
- Excel函数核武器库:50个高频场景公式——第二弹
- Excel函数核武器库:50个高频场景公式——第一弹
- Spring Cache高性能缓存库 - Caffeine简介
- Java通过Kafka Streams库来实现数据流处理
- 一连问了好几个大佬,竟然都不知道Redis为什么默认16个数据库?
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)