Ubuntu系统重启自动启动Docker容器

简介: Ubuntu系统重启自动启动Docker容器

前言

之前文章实现了在 Ubuntu 服务器中使用 DockerNginx 容器部署项目,项目部署好以后,重启以后服务就没了,每次还得手动启动 docker, 然后再启动 nginx 容器,手动操作很麻烦,在真实服务器的场景中运行的服务很多的,每次手动执行命令的方式启动根本不现实

接下来实现 Ubuntu 系统重启后自动重启 docker 中的 nginx 容器,使部署的前端项目能自动就能访问

前端破圈使用Docker Nginx容器部署项目🏴‍☠️

开始行动

1. 设置 docker 服务开机启动

使用 systemctl 命令(下面会对systemctl做对应的介绍和扩展)

$ systemctl enable docker.service

检查docker服务是否设置成功

$ systemctl is-enabled docker

如果输出 enabled 表示设置成功

2. 设置docker服务启动后容器也自动重启

使用 --restart=always 参数

2.1 如果容器已启动

使用 update 更新即可

$ docker update --restart=always <容器id>

2.2 如果容器未启动

docker run 的时候加上 --restart 参数

$ docker run --name nginx-server --restart=always -p 80:80 -v /home/w/Desktop/code:/workspace -d nginx

小结

这时候重启 Ubuntu 系统就能自动重启对应的 docker nginx 容器了,部署的前端站点也可以正常访问。接下来将对 systemctl 命令的常用场景进行补充和扩展

Systemd

systemd 是一个init系统和系统管理器,已广泛成为Linux发行版的新标准

systemctl

systemctl 命令,它是用于控制init系统的中央管理工具。刚才设置服务开机启动就是用的这个命令,关于这个命令的使用需要用 root 用户身份运行,如果不是,需要使用 sudo,否则会影响操作状态

开启和停止服务

要启动 systemd 服务,使用 start 命令

$ sudo systemctl start application.service

关闭 systemd 服务,使用 stop 命令

$ sudo systemctl stop application.service

重启服务和重载

如果运行的服务需要重启,可以使用 restart 命令

$ sudo systemctl restart application.service

如果运行的服务有问题,需要重新加载其配置文件(无需重新启动),可以使用重载 reload 命令启动该过程

$ sudo systemctl reload application.service

设置自动重启,取消自动重启

上面设置 docker 服务开机启动的时候,就是用的这个命令 enable

$ sudo systemctl enable application.service

使用 disable 取消(禁用)服务开机自动启动

$ sudo systemctl disable application.service

检查服务状态

$ systemctl status application.service

例如检查 docker 服务的运行状态

image.png

总结

到目前为止,了解到了如何在 Ubuntu 中设置 docker 服务的开机自启动,以及 systemctl 命令相关的常见用法。当然,关于管理系统服务和单元还有很多内容,如果后续实践有用到,也会定期整理分享出来

目录
相关文章
|
2天前
|
监控 NoSQL 时序数据库
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
116 77
|
4天前
|
数据建模 应用服务中间件 nginx
docker替换宿主与容器的映射端口和文件路径
通过正确配置 Docker 的端口和文件路径映射,可以有效地管理容器化应用程序,确保其高效运行和数据持久性。在生产环境中,动态替换映射配置有助于灵活应对各种需求变化。以上方法和步骤提供了一种可靠且易于操作的方案,帮助您轻松管理 Docker 容器的端口和路径映射。
27 3
|
15天前
|
Kubernetes Linux 开发者
深入探索容器化技术——Docker 的实战应用
深入探索容器化技术——Docker 的实战应用
46 5
|
19天前
|
运维 Cloud Native 云计算
云原生之旅:Docker容器化实战
本文将带你走进云原生的世界,深入理解Docker技术如何改变应用部署与运维。我们将通过实际案例,展示如何利用Docker简化开发流程,提升应用的可移植性和伸缩性。文章不仅介绍基础概念,还提供操作指南和最佳实践,帮助你快速上手Docker,开启云原生的第一步。
|
22天前
|
机器学习/深度学习 数据采集 Docker
Docker容器化实战:构建并部署一个简单的Web应用
Docker容器化实战:构建并部署一个简单的Web应用
|
20天前
|
运维 持续交付 虚拟化
深入解析Docker容器化技术的核心原理
深入解析Docker容器化技术的核心原理
42 1
|
19天前
|
存储 运维 数据中心
使用Docker容器化应用程序的优势与挑战
使用Docker容器化应用程序的优势与挑战
19 0
|
Ubuntu Shell 应用服务中间件
Docker -- 系统整洁之道 -- 1
在上文Docker – 系统整洁之道 – 0中已经对Docker是什么,安装Docker以及怎么运行一个简单的容器有了初步了解,这篇文章介绍Docker的一些命令和Docker镜像的使用及操作。
1473 0
|
Ubuntu Linux Docker
Docker -- 系统整洁之道 -- 0
在我的小 rmbp 256G的硬盘里,实在是装不下100多个G的虚拟机了,所以想把一些东西迁移到这两年很火的Docker下,Docker以前也有过一两次,只是按着别人给的用法用的,具体的一些细节并没有深入,和git一样,这么牛掰的东西怎么能不好好学一些呢? Docker和虚拟机的区别 Docker是一种容器,虚拟机是一种管理程序虚拟机化(hypervisor virtualization,HV)。
1598 0
|
10天前
|
监控 Docker 容器
在Docker容器中运行打包好的应用程序
在Docker容器中运行打包好的应用程序